我有一个向量(折线)shapefile,我需要检索每条线的起点和终点(节点)并使用这些点创建一个shapefile。然后,我需要将基于点ID的每条线的起点和终点添加到折线的属性表中。
如何在ArcGIS Desktop或QGIS中以简单的方式做到这一点?
我有一个向量(折线)shapefile,我需要检索每条线的起点和终点(节点)并使用这些点创建一个shapefile。然后,我需要将基于点ID的每条线的起点和终点添加到折线的属性表中。
如何在ArcGIS Desktop或QGIS中以简单的方式做到这一点?
Answers:
这是GDAL的单线。此命令从具有选定属性的起始节点创建一个shapefile:
ogr2ogr -f "ESRI Shapefile" -dialect sqlite output.shp -sql "select ST_StartPoint(geometry), attribute_1, attribute_2, attribute_3 from input" input.shp
将ST_EndPoint用于端点。
对于ArcGIS解决方案,我制作了一个地理处理工具来创建在线点。
您可以下载它,并在此处查看代码:在线上创建点
对于类型,您将要选择开始/结束点。这将创建一个新的点要素类,其中包含每个折线的起点和终点。
输出点要素类还将具有一个称为LineOID的字段,该字段记录从其创建的折线的OID。这样,您可以将属性数据重新加入。
这是您如何设置参数的屏幕截图:
在QGIS中,使用“ 提取特定顶点”工具。将“ 顶点索引”设置为0以获取起点,将-1设置为终止点,或者将0,-1设置为两者。
注意说明:
第一个顶点对应的索引为0,第二个顶点的索引为1,依此类推。负索引可用于查找几何体末端的顶点,例如,索引-1对应于最后一个顶点,- 2对应倒数第二个顶点,依此类推。
在ArcGIS中,如果您具有“高级”许可证,则可以将“数据管理工具箱”->“功能工具集”->“特征点到点”工具与“两端”选项一起使用。该行的所有属性都将保留。但是,您必须在原始线要素类中添加一个字段,并计算线上的要素ID,以将这些值保留在点中。如果行上还有另一个唯一值字段,则可以在运行该工具后加入并计算FID。最终选项将涉及使用“一对多”选项进行空间连接并删除具有不良属性的副本。