Qgis软件编写python脚本实现批量将txt经纬度文件转换成shp文件
时间: 2023-10-24 19:04:34 浏览: 197
QGIS310的Python脚本-坐标点转面.zip
好的,这是一个关于QGIS和Python编程的问题。我会尽力回答。
首先,需要安装QGIS软件,并确保已经安装了Python插件。然后,可以使用以下Python脚本实现批量将txt经纬度文件转换成shp文件:
```python
import os
from qgis.core import *
import qgis.utils
# 设置QGIS应用程序路径
QgsApplication.setPrefixPath("C:/Program Files/QGIS 3.10", True)
qgs = QgsApplication([], False)
qgs.initQgis()
# 设置经纬度txt文件路径
input_folder = "C:/input_folder"
# 设置输出shp文件路径
output_folder = "C:/output_folder"
# 遍历输入文件夹中的所有txt文件
for file_name in os.listdir(input_folder):
if file_name.endswith(".txt"):
# 加载txt文件
uri = "file:///" + os.path.join(input_folder, file_name) + "?delimiter=,"
layer = QgsVectorLayer(uri, file_name[:-4], "delimitedtext")
# 设置坐标系
crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
layer.setCrs(crs)
# 保存为shp文件
output_file = os.path.join(output_folder, file_name[:-4] + ".shp")
QgsVectorFileWriter.writeAsVectorFormat(layer, output_file, "UTF-8", crs, "ESRI Shapefile")
print("Converted {} to {}".format(file_name, output_file))
# 退出QGIS应用程序
qgs.exitQgis()
```
在这个脚本中,首先设置了QGIS应用程序的路径,并初始化了QGIS应用程序。然后,设置了输入文件夹和输出文件夹的路径,并遍历了输入文件夹中的所有txt文件。对于每个txt文件,首先使用QGIS的delimitedtext数据提供程序加载文件,并设置其坐标系为WGS 84。然后,使用QGIS的ESRI Shapefile格式将图层保存为shp文件。最后,退出QGIS应用程序。
希望这个脚本能够帮助到你。如果你有任何问题,请随时问我。
阅读全文