如何编写一个txt转shp的脚本并且可以保留对应的字段属性
时间: 2023-05-28 09:05:57 浏览: 54
要编写一个txt转shp的脚本并且保留对应的字段属性,需要使用Python编程语言和GDAL库。以下是一个基本的脚本:
```
import ogr
# 定义输入文件和输出文件路径
input_file = 'input.txt'
output_file = 'output.shp'
# 创建输出shp文件
driver = ogr.GetDriverByName('ESRI Shapefile')
output_ds = driver.CreateDataSource(output_file)
output_layer = output_ds.CreateLayer('output', geom_type=ogr.wkbPoint)
# 创建字段
fields = ['id', 'name', 'value']
for field_name in fields:
field_defn = ogr.FieldDefn(field_name, ogr.OFTString)
output_layer.CreateField(field_defn)
# 读取输入文件并将数据添加到shp文件中
with open(input_file, 'r') as f:
for line in f:
line = line.strip().split(',')
id = line[0]
name = line[1]
value = line[2]
# 创建点对象并添加到图层中
point = ogr.Geometry(ogr.wkbPoint)
point.AddPoint(float(line[3]), float(line[4]))
feature = ogr.Feature(output_layer.GetLayerDefn())
feature.SetGeometry(point)
# 设置属性值
feature.SetField('id', id)
feature.SetField('name', name)
feature.SetField('value', value)
# 添加要素到图层中
output_layer.CreateFeature(feature)
feature = None
# 释放资源
output_ds = None
```
在这个脚本中,首先定义了输入文件和输出文件的路径,然后使用GDAL库创建了输出shp文件和图层,并定义了需要保存的字段。然后,读取输入文件的每一行,将数据添加到shp文件中,并设置对应的属性值。最后,释放资源。
需要注意的是,这个脚本假定输入文件为逗号分隔的txt文件,每行格式为“id,name,value,x,y”,其中x和y表示点的坐标。如果输入文件格式不同,需要相应地修改脚本。另外,使用GDAL库需要安装相应的库和驱动程序。