三种方式"/>
ArcGIS中矢量数据线转点的三种方式
ArcGIS中矢量数据线转点的三种方式
最近做项目中遇到了需要得到线状道路数据中线内每一点的具体经纬度这个需求,于是想到了将线先转成点,然后获取每一点的坐标信息这个方法,由于需要获得相对较密集的点位信息,因此在线转点的过程中要实现按指定距离生成点,这样才能控制生成的点数,遂查了查几种通过线状数据生成点状数据的方法,当前基于ArcGIS实现此需求的方式有以下三种。
方法一:使用Feature Vertices To Points(要素折点转点)工具
要素折点转点工具是比较常用的要素转点工具,优点是使用方便,10.0以上的ArcGIS版本都支持这个工具,但工具用途有限,只能将曲线或面中的拐点(折点)转换成点,要素中的其他部分无法转换,无法满足多样的转换需求。
ArcGIS官方帮助代码说明
# Name: FeatureVerticesToPoints_Example2.py
# Description: Use FeatureVerticesToPoints function to get the mid-points
# of input line features# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"# Set local variables
inFeatures = "majorrds.shp"
outFeatureClass = "c:/output/output.gdb/majorrds_midpt"
# Execute FeatureVerticesToPoints
arcpy.FeatureVerticesToPoints_management(inFeatures, outFeatureClass, "MID")
方法二:使用Generate Points Along Lines(沿线生成点 )工具
沿线生成点 工具是ArcGIS10.3及以上版本推出的采样工具,位于数据管理-采样工具集中,该工具可以沿线或面以固定间隔或百分比创建点要素,相比要素折点转点工具可以更灵活的按需求生成自己想要的点类型。
ArcGIS官方帮助代码说明
# Description: Convert point features into line features
import arcpy
# Set environment settings
arcpy.env.workspace = 'C:/data/base.gdb'
# Set local variables
in_features = 'rivers'
out_fc_1 = 'distance_intervals'
out_fc_2 = 'percentage_intervals'
# Execute GeneratePointsAlongLines by distance
arcpy.GeneratePointsAlongLines_management(in_features, out_fc_1, 'DISTANCE',Distance='500 meters')
# Execute GeneratePointsAlongLines by percentage
arcpy.GeneratePointsAlongLines_management(in_features, out_fc_2, 'PERCENTAGE',Percentage=10,Include_End_Points='END_POINTS')
方法三:基于Arcpy创建脚本工具
第三种方式就是基于ArcGIS提供的Arcpy包编写脚本,并创建Toolbox 工具箱,这种方式灵活度更高,可以完全按自己需求定制沿线生成点工具的功能,需要对Arcpy有比较深入的了解,这里我找到了一个国外某论坛网友编写的基于线生成点工具,这个工具功能上与ArcGIS官方的沿线生成点工具比较相似,同样支持按距离或百分比生成点,源代码位于此网址:工具源代码
总结
以上三种方式中后两种可以更好的支撑线转点这个需求,尤其是当需要沿线生成海量的数据点的时候,但要注意沿线生成点工具对ArcGIS版本有要求,如果使用的10.2以下版本又不想重装高版本的话还是建议使用Arcpy自建脚本工具。
更多推荐
ArcGIS中矢量数据线转点的三种方式
发布评论