ArcGIS Pro脚本工具(8)——txt坐标文件转shp

国土部门给过来的数据经常需要转换,比如土地报批和高标准农田的数据经常给一个txt文件过来,不能直接在GIS软件中使用。这些txt文件结构通常如下。

043e6cc02ce6baa93863ef9ed9368dfb.png

如果txt文件的数据量小,那么在Excel中预处理再在ArcGIS中使用工具生成面还算简单。如果面的个数很多,那用Excel预处理这一步就很繁琐了。

之前已经接触过Python以及ArcPy,估计可以使用编程的方法解决。在一番面向百度编程之后,终于找到一个堪称完美的解决办法。在此也感谢一下趟水的前辈。https://blog.csdn.net/rsLanZai/article/details/109207498https://blog.csdn.net/rsLanZai/article/details/109207498?utm_source=app&app_version=5.0.0如果使用的是ArcGIS Pro和Python3,那么需要将代码的语法调整一下。另外我也踩了一个坑。

在运行代码前,需要检查一下txt文件的编码,如果是gbk或者gb2312那么可以正常运行,如果是utf-8,那么open方法需要传第三个参数encoding='utf-8',或者将txt文件的编码方式改成gb2312。

7e09f96069480962c690de2569e9111e.png

将代码文件制作成ArcGIS Pro可用的脚本模型,就可以傻瓜操作了。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZyI5ZyI55qE5ZyI5ZyI,size_20,color_FFFFFF,t_70,g_se,x_16ArcGIS Pro脚本模型https://download.csdn.net/download/baidu_28157641/79580860

------------------------------------------------------------

更新

上面的办法还是不够完美,一是相接触的地块没有区分开来而是完全融合在一起,二是没有完全把地块的属性信息写入shp。

刚刚学习到一种真真完美的办法:

【项目驱动学GIS】国土项目报备坐标文件解析_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1NT4y1X7kP?p=1&share_medium=android&share_plat=android&share_session_id=b93c2d5d-bce4-4c8e-9045-bd863a23a82e&share_source=WEIXIN&share_tag=s_i×tamp=1644645117&unique_k=vRh0ZAr

需要的话加一下多加一个坐标系参数

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
ArcGIS中,您可以使用Python语言编写一个脚本来批量将TXT文件换为SHP文件。下面是一个简单的示例脚本,可以帮助您了解如何实现这个功能: ```python import arcpy import os # 设置工作空间 arcpy.env.workspace = r"C:\data" # 遍历指定目录下的所有TXT文件 for root, dirs, files in os.walk(arcpy.env.workspace): for file in files: if file.endswith(".txt"): # 获取文件路径和名称 txtFile = os.path.join(root, file) fileName = os.path.splitext(file)[0] # 创建点要素集 featureClass = arcpy.CreateFeatureclass_management( arcpy.env.workspace, fileName, "POINT") # 添加字段 arcpy.AddField_management(featureClass, "FileName", "TEXT") # 打开游标并逐行读取TXT文件中的坐标数据 cursor = arcpy.da.InsertCursor(featureClass, ["SHAPE@", "FileName"]) with open(txtFile, "r") as f: for line in f: # 解析坐标数据,创建点要素,并写入属性字段 x, y = line.strip().split(",") point = arcpy.Point(float(x), float(y)) cursor.insertRow((point, fileName)) # 释放游标 del cursor ``` 这个脚本的主要思路是遍历指定目录下的所有TXT文件,并逐个读取文件中的坐标数据。对于每个TXT文件脚本会创建一个点要素集,并添加一个属性字段用于存储文件名。然后,脚本会打开游标并一行一行地读取TXT文件中的坐标数据,解析数据并创建点要素,并将文件名写入属性字段中。最后,脚本会保存点要素集为SHP文件。 需要注意的是,脚本中的代码可能需要根据您的具体情况进行修改。比如,您需要将工作空间设置为自己的数据存储路径,确保TXT文件中的坐标数据格式和分隔符与代码中的匹配,以及根据需要调整点要素的属性字段等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值