[Gfoss] OT ma non troppo: integrazione tra informazione geografica e prodotti per la BI

Fabio D'Ovidio fabiodovidio a gmail.com
Lun 13 Ott 2008 16:06:31 CEST



andrea antonello ha scritto:
> La feature che piu' mi ha impressionato e' la possibilita' di definire
> un flusso di lavoro in modo grafico (ex, leggi da db, leggi da tiff,
> esegui calcolo, manda mail con risultato etc etc) ed e' poi possibile
> esportare il flusso di lavoro come applicazione java da lanciare su un
> server.
>   

E' esattamente ciņ che fa anche Pentaho con GeoKettle... dove puoi 
definire una trasformazione con vari step e\o un job ossia una serie di 
trasformazioni.
Per ora Geokettle legge\scrive da e su PostGIS e ci sono ancora tante 
cose che devo provare (tipo la gestione della topologia...)

per il momento:


      Using GeoKettle

GeoKettle can be used the exact same way as Pentaho Data Integration 
(PDI). Please refer to the PDI user documentation included in this 
distribution.

Demo transformations showing the use of the geospatial extensions are 
also included in this distribution, in the 
samples/transformations/geokettle directory. The new features for 
geospatial data are documented here:

    * *Geometry Value type*: In addition to the basic Value types (e.g.
      Number, String, Date, ...) existing in PDI, GeoKettle introduces a
      new Geometry Value type, supporting vector geospatial data
      (geometries such as Point, Line and Polygon). A Geometry Value is
      automatically generated when reading a geometry field from a
      supported spatial DBMS or GIS file format. For example, when using
      the "Table input" step with a table (from a PostgreSQL DBMS with
      the PostGIS extensions installed) containing a column with a
      GEOMETRY type, the corresponding Geometry Value will be part of
      the output for this step. The capability to convert a Well-Known
      Text (WKT) string to a Geometry is also supported: changing the
      value type of a String to Geometry (with the Select Values step)
      will yield a valid Geometry value if the string contents is a
      valid WKT string. Conversion from Geometry to String does the
      opposite (converting the geometry as a WKT string).

      The Geometry Value type is implemented using objects from the
      GeOxygene framework (http://oxygene-project.sourceforge.net). All
      geometry objects are abstracted with the GM_Object interface (a
      GM_Object reference is encapsulated in the ValueGeometry class in
      GeoKettle).

    * *Access to Geometry Values in JavaScript*: It is possible to
      access the GeOxygene framework objects contained in Geometry
      values in the "Modified JavaScript" step. This makes possible the
      use of spatial analysis functions such as buffer calculations,
      overlays, metric operators, etc. An example transformation using
      Geometry values in JavaScript is included in the distribution.

    * *Input / output with spatial DBMS*: For now, only PostGIS is
      supported as a spatial DBMS. Support for GEOMETRY columns is
      natively supported with the PostgreSQL driver (by using the
      PostGIS driver wrapper, included in the distribution). One only
      has to choose the PostgreSQL native (JDBC) connection type when
      creating the database connection. If the database in question is
      configured with the PostGIS extension, all GEOMETRY columns will
      transparently be read as Geometry values (no need to use PostGIS's
      AsText() or AsBinary() geometry accessors), whether one uses the
      "Table input", "Database lookup" or "Database join" steps.
      Likewise, Geometry values will be transparently converted to the
      native DBMS geometry type when written to a GEOMETRY column (in
      any database output step, such as "Table output", "Insert /
      Update" or "Dimension lookup/update").

    * *Topological predicates*: Kettle conditions
      (be.ibridge.kettle.core.Condition class) have been extended with
      topological predicate functions, allowing the comparison of
      Geometry fields based on topological relationships. The new
      functions are: GIS_INTERSECTS, GIS_EQUALS, GIS_CONTAINS,
      GIS_CROSSES, GIS_DISJOINT, GIS_WITHIN, GIS_OVERLAPS, GIS_TOUCHES
      and GIS_ISVALID. All of them are binary predicates (comparing one
      field to another) except for GIS_ISVALID which is unary (returns
      true or false based on the validity of the geometry in a single
      field). For example, if we want to know if values for a certain
      "City" field are located within values from a "State" field, we
      would use the GIS_WITHIN predicate. If the City point is located
      within the State polygon for the current row, the expression
      evaluates to true (otherwise, false). These new topological
      predicates can be used in any step based on the Condition class,
      i.e. "Filter rows" and "Join rows (cartesian product)". A demo
      transformation (intersection.ktr) is included in the distribution.

    * *"GIS file input" step*: A new "GIS file input" step is present in
      the Experimental steps. This supports the reading of GIS data
      files; for now only Shapefiles are supported. The geometry
      (contained in the SHP file) is read to a field named "the_geom"
      (with a Geometry value type) and all other alphanumerical fields
      (contained in the DBF file) are read to fields with the
      corresponding name and value type. Unlike the existing "ESRI
      Shapefile Reader" step from PDI, which reads geometries contained
      in the Shapefile as X and Y numeric fields representing the
      coordinates of points, this new "GIS file input" step reads
      geometries as Geometry values.

    * *"Spatial Analysis" step*: The new "Spatial Analysis" step (in
      Experimental steps) is a placeholder for a future GUI dialog
      providing an easy to use interface for spatial analysis functions
      such as buffers, overlays and other metric/geometric operators.
      For now, it does nothing at all. The "Modified JavaScript" step
      can be used to manipulate Geometry objects, in order to perform
      spatial analysis, as explained in the "Access to Geometry Values
      in JavaScript" section.


-- 
Ing. Fabio D'Ovidio

INOVA Open Solutions s.r.l.
Web : http://www.inovaos.it
Tel.: 081 197 57 600
mail: fabiodovidio a gmail.com



Maggiori informazioni sulla lista Gfoss