【问题标题】:Read shapefile attributes using talend使用 talend 读取 shapefile 属性
【发布时间】:2017-03-17 12:03:36
【问题描述】:

我正在使用 TOS 的空间插件来执行以下任务: 我有一个带有 X 和 Y 坐标的数据集。我还有一个带有多个多边形和两个元数据属性的 shapefile,nameId。这个想法是用坐标在 shapefile 中查找名称。多边形中的一个点将确定该点属于哪个多边形。

我正在使用指向 .shp 文件的 shapefile 输入组件。

我面临着障碍:

  • 我无法从文件中检索 nameId。我只能看到一个属性调用the_geom。如何读取元数据?
  • 第二件事是,该文件包含一个多多边形,我不知道如何对其进行迭代以便与点执行 Containsintersect .

任何评论将不胜感激。

【问题讨论】:

  • 属性实际上并没有存储在 .shp 中,而是在 shapefile 附带的 .dbf 文件中。您应该能够使用例如检查该文件LibreOffice/OpenOffice Calc,.dbf 中的行应与 .shp 中的形状顺序相同。

标签: geospatial talend shapefile


【解决方案1】:

感谢您的意见@chrki

我设法以这种方式解决了我的任务:

1) 在元数据下创建通用架构:

由于 .dbf 文件位于 shapefile 的同一目录中,Talend 自动识别元数据:

2) 这是工作概述:

3) 我使用 sShapeFileInput 组件读取形状文件:

4) shapefile 包含多边形,我想要多边形。我的解决方案是使用 sSimplify 组件。我使用了默认设置。

5) shapefile 的投影是“MGI / Austria Lambert”,对应于 EPSG 31287。我想将其重新投影为 EPSG 4326 (GCS_WGS_1984),这是我的输入坐标使用的那个。

6) 我从 csv 文件中读取 x、y 坐标。

7) 我使用 s2DPointReplacer 将 x,y 坐标转换为 Point(x,y) (WKT)

8) 最后,我在 tMap 中创建了一个表达式,以仅获取具有交叉点的多边形和点。我想“包含”也可以:

我希望这对其他人有帮助。

亲切的问候,

保罗

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多