ArcGIS中点转线面的方法

      近几天在处理海绵城市的管点、管线、河道断面、河道数据,拿到的是excel格式的观点、河道断面xy平面坐标和管线、河道与管点、河道断面的对应关系数据,需要的成果为shape。对于管点、河道断面来讲,有了xy平面坐标,通过 Add XY 坐标的方式,即可将坐标文件转换成shape数据。可是对于管线和河道来说,最直接的方式,就是手工将起点和终点连接起来,对于少量的数据来讲,这么做还是能勉强能够接受的。可是,对于成百上千,甚至数以万计的点/线来说,这么做是不可能的。
      通过对ArcMap工具箱的了解,可以通过 Create Features From Text File 工具,将写好的点坐标文件生成线状shape。要生成线状shape,需要以何种格式来填写txt呢?
如下所示:


Polyline
1 0
0 12434274.3784 3382398.33238 1.#QNAN 1.#QNAN
1 12434273.3963 3382228.59284 1.#QNAN 1.#QNAN
2 0
0 12432349.9699 3381846.26313 1.#QNAN 1.#QNAN
1 12432746.662 3381835.65758 1.#QNAN 1.#QNAN
3 0
0 12432746.662 3381835.65758 1.#QNAN 1.#QNAN
1 12432825.5994 3382099.57936 1.#QNAN 1.#QNAN
4 0
0 12432825.5994 3382099.57936 1.#QNAN 1.#QNAN
1 12433398.8527 3381933.91711 1.#QNAN 1.#QNAN
END


      相信上面的结构大家一眼就能看懂:Polyline表示线,1 0表示第一个线,1也是生成shape中该线的id,0 x y 1.#QNAN 1.#QNAN 表示起点坐标,1.#QNAN 表示Z,M坐标,最后以END结尾。对于面状shape,文本结构如下:


Polygon
1 0
0 12434274.3784 3382398.33238 1.#QNAN 1.#QNAN
1 12434273.3963 3382228.59284 1.#QNAN 1.#QNAN
2 12432349.9699 3381846.26313 1.#QNAN 1.#QNAN
3 12434274.3784 3382398.33238 1.#QNAN 1.#QNAN
2 0
0 12432746.662 3381835.65758 1.#QNAN 1.#QNAN
1 12432825.5994 3382099.57936 1.#QNAN 1.#QNAN
2 12434274.3784 3382398.33238 1.#QNAN 1.#QNAN
3 12432746.662 3381835.65758 1.#QNAN 1.#QNAN
END

       表示两个三角形,组成每个三角形的4个点中,0和3的坐标相同,表示从0开始,到3(0)结束。按照上述格式整理好polyline和polygon的格式后,即可使用工具Create Features From Text File  创建线或面(工具在Samples工具箱里,在 10.x版本ArcGIS中具体的寻找方法,详见博客 ARCGIS 10.x 中找回Samples工具箱的方法),具体的设置如下,平面坐标下,Decimal Separator可设置为12345678.12345或11111111.11111。



      如此,则可在知道线或面与点对应关系的情况下,将大量点位转成线或面文件。

### ArcGIS 中矢量数据的相互换 #### 到线的换 为了将要素换为线要素,在ArcGIS中通常采用`Points To Line`工具。此工具位于`Data Management Tools -> Features`菜单下。通过该功能可以根据特定字段连接一系列形成一条或多条折线,这些按照指定顺序排列以构建合理的路径[^1]。 ```python import arcpy from arcpy import env env.workspace = "C:/data" arcpy.PointsToLine_management("points.shp", "lines.shp", line_field="ID") ``` #### 线到面的换 对于由线构成边界的情况,可以通过`Feature To Polygon`命令来创建多边形。这项操作同样可以在`Data Management Tools -> Features`找到。输入线条应当闭合或至少首尾相连以便于定义封闭区域[^2]。 ```python import arcpy from arcpy import env env.workspace = "C:/data" arcpy.FeatureToPolygon_management(["roads.shp"], "polygons.shp") ``` #### 面到换 要从面要素生成代表性的中心位置即质心,则应利用`FeatureToPoint`工具。它也属于`Data Management Tools -> Features`的一部分。这样做的好处是可以快速获取每个面的核心定位信息用于进一步的空间分析或其他用途[^3]。 ```python import arcpy from arcpy import env env.workspace = "C:/data" arcpy.FeatureToPoint_management("parcels.shp", "parcel_centroids.shp", "INSIDE") ``` 以上三种方法分别适用于不同类型的地理实体之间互相变的需求,并且都依赖于ArcPy库所提供的强大脚本支持来进行自动化处理流程的设计与实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值