Qgis软件编写python脚本实现批量将txt坐标文件转换成shp文件
时间: 2023-10-24 07:04:34 浏览: 160
好的,这个问题我可以回答。
您可以使用QGIS自带的Python控制台来编写Python脚本,实现批量将txt坐标文件转换成shp文件的功能。
以下是一个简单的代码示例:
```python
import os
from qgis.core import QgsVectorLayer, QgsPoint, QgsField, QgsFeature, QgsGeometry
# 定义txt文件路径和名称
txt_path = "/path/to/txt/files/"
txt_files = os.listdir(txt_path)
# 定义shp文件路径和名称
shp_path = "/path/to/shp/files/"
# 循环处理每个txt文件
for txt_file in txt_files:
# 读取txt文件
with open(os.path.join(txt_path, txt_file), 'r') as f:
lines = f.readlines()
# 创建shp文件
layer_name = os.path.splitext(txt_file)[0]
layer = QgsVectorLayer("Point?crs=epsg:4326", layer_name, "memory")
pr = layer.dataProvider()
pr.addAttributes([QgsField("id", QVariant.Int)])
# 解析每个点的坐标,并添加到shp文件中
for i, line in enumerate(lines):
x, y = line.strip().split(",")
point = QgsPoint(float(x), float(y))
feature = QgsFeature()
feature.setGeometry(QgsGeometry.fromPointXY(point))
feature.setAttributes([i])
pr.addFeatures([feature])
# 保存shp文件
QgsVectorFileWriter.writeAsVectorFormat(layer, os.path.join(shp_path, f"{layer_name}.shp"), "utf-8", layer.crs(), "ESRI Shapefile")
```
您只需要将代码中的txt文件路径和shp文件路径替换成您自己的路径,就可以使用这个脚本来批量将txt坐标文件转换成shp文件了。
阅读全文