# Spatial operations for Spatial ETL using Talend

Calculate areas or lengths during the integration and transformation process, intersect geometries and create buffers, convex hulls or bounding boxes. GeoSpatial Integration for Talend offers you a wide range of spatial operations. Check whether your geometries are valid, compare them in terms of overlapping, touching, containing or measure the distance between them. Coordinates can also be transformed into points or points into lines. Calculate the geometries while processing data between different coordinate systems.

## Includes a wide range of components:

Components for spatial calculations:

dArea Calculator | This component takes as input a polygon geometry and calculates its area. |

dCoordinateFetcher | This component retrieves the coordinates of a two-dimensional or a three-dimensional point. In the case of a geographic coordinate system, it retrieves the longitude and latitude. Otherwise, it retrieves the easting and northing values. |

dLengthCalculator | This component calculates the length of a line or the total length of a polygon’s contour. |

Components developed for data quality optimization:

dGeometryValidator | This component takes an input geometry and validates it. It returns a boolean value, true if the geometry is valid, otherwise it returns false. |

Components developed for the use of Oracle databases and faster data conversion:

dGeometrytoOracleObject | This component takes an input flow that contains a geometry column of type DGeometry and converts it to an Oracle geometry of type Object. |

dOracleObjecttoGeometry | This component takes an Oracle input flow and converts the Oracle object geometry to a DGeometry data type. |

Components developed for the use of PostGIS:

dGeometryToPostgisObject | This component takes an input flow that contains a geometry column of type DGeometry and converts it to a PostGIS geometry of type Object. |

dPostgisObjectToGeometry | This component takes a PostgreSQL input flow that contains a geometry object (PostGIS geometry) and converts it to a DGeometry data type. |

Components developed for the use of SpatialLite:

dSpatiaLiteConnection | This component makes a connection to the specified SpatiaLite database file. |

dSpatiaLiteInput | This component queries a table with spatial data from a SpatialLite database. It passes the values to the next component via a Main row link. |

dSpatiaLiteOutput | This component executes the action defined on the SpatiaLite table and/or on the data contained in the table based on the flow coming from the preceding component. |

Components developed for the use of GeoJSON:

dGeoJSONObjectToGeometry | This component takes a string input flow in GeoJSON format and converts it to a DGeometry data type. |

dGeometryToGeoJSONObject | This component takes an input flow that contains a geometry column of type DGeometry and converts it to a string in GeoJSON format. |

Components developed for special formats:

dShapeFileInput | This component queries a shapefile. It passes the values to the next component via a Main row link. |

dShapeFileOutput | This component writes data to a shapefile based on the flow coming from the preceding component. If the file does not exist, it will be automatically created. If the file exists, the data will be overwritten. |

Special spatial operations:

dAggregateGeometryRow | This component takes an input flow with geometries of type DGeometry, based on a condition, groups the geometries and executes diverse geometry operations. The following aggregation operations can be executed in the group of geometries: union, envelope, convex hull, creation of lines or polygons from points. |

dBufferCalculator | This component takes an input geometry of type DGeometry and generates a buffer around it according to the parameters entered in the component. It returns as output a polygon geometry of type DGeometry. |

dCentroidCalculator | This component takes an input geometry of type DGeometry and calculates its convex hull. A polygon geometry of the type D geometry is returned as output. |

dConvexHullCalculator | This component takes an input geometry of type DGeometry and calculates its centroid. It returns as output a point geometry of type DGeometry. |

dEnvelopeCalculator | This component takes an input geometry of type DGeometry and calculates its bounding box. It returns as output a polygon geometry of type DGeometry. |

dIntersection | This component takes two geometries of type DGeometry and intersects them. The result is the intersecting geometry of type DGeometry. |

dPointFromCoordinates | This component takes the given coordinates and coordinate reference system, and creates a point geometry. The result is of type DGeometry. |

dProject | This component transforms the input geometry from an input coordinate reference system to a given output coordinate reference system. The output is the transformed geometry of type DGeometry. |

Component input:

dGeomTxtInput | This component generates a geometry of type DGeometry based on an input WKT string entered directly in the component. |

**Routines included**

Category DGeometryCalculator

Routine | Beschreibung |

AREA | Returns the area of a polygon geometry in the units of the spatial reference system. |

AREA_ON_ELLIPSOID | Returns the area of a polygon geometry calculated on ellipsoid in the units of the spatial reference system. |

COORDINATE | Returns x, y or z of the n-th point of the geometry. |

LENGTH | Returns the length of the input geometry. |

LENGTH_ON_ELLIPSOID | Returns the length of the geometry calculated on ellipsoid. |

Category DGeometry Filter

CONTAINS | This function returns true if the first geometry spatially contains the second geometry. |

COVERED_BY | This function returns True if the first geometry is covered by the second geometry. |

COVERS | This function returns True if the first geometry covers the second geometry. |

CROSSES | This function returns True if the first geometry spatially crosses the second geometry. |

DISJOINT | This function returns True if the first geometry is spatially disjoint from the second geometry. |

EQUALS | This function returns True if the first geometry is topologically equal to the second geometry. |

INTERSECTS | This function returns True if the geometries spatially intersect. |

IS_WITHIN_DISTANCE | This function verifies if the distance from the first geometry to the second is less than or equal to a specified value. |

OVERLAPS | This function returns True if the first geometry spatially overlaps the second geometry. |

RELATE | This function verifies whether the elements in the Dimensionally Extended nine-Intersection Model (DE-9IM) intersection matrix for the two geometries match the elements in the intersection pattern. |

TOUCHES | Tests whether the first geometry touches the second geometry. |

WITHIN | This function returns True if the first geometry is spatially within the second geometry. |

Category DGeometryQuality

IS_VALID | This function verifies if a geometry is valid. |

## Disy is Talend Gold Partner and

Value-added Reseller (VAR)

Being a Talend Gold Partner, we supply authorities and large organizations with the advantages of state-of-the-art technology coupled with our special knowledge: As a Talend system integrator and value-added reseller, we provide expert advise regarding product selection, modeling of ETL processes and data integration. We implement complete projects setting up Data Warehouses, Master Data Management, etc.