我对python还不熟悉,我正试图用python更好地自动化GIS任务。感谢任何帮助
我有两个包含点的层,我正试图使用python中的Ogr将它们合并到一个单独的层中。下面是我在一个网站上找到的代码,但是它给了我一个错误
AttributeError: 'NoneType' object has no attribute 'GetLayer'
我认为导致这个错误的原因是:
ds = ogr.Open(directory + file)
我想知道为什么在这一步中什么都没有生成,我还想知道是否有一种不同/更好的方法来使用gdal/ogr python合并层
outputMergefn = 'Merge.shp'
directory = "C:/Users/Robin/Documents/Python Final Project/Final_Project/Output"
filestartswith = 'C'
FileEndsWith = '.shp'
drivername = 'ESRI Shapefile'
geometrytype = ogr.wkbMultiPoint
ptdriver = ogr.GetDriverByName('ESRI Shapefile')
if os.path.exists(outputMergefn):
ptdriver.DeleteDataSource(outputMergefn)
out_ds = ptdriver.CreateDataSource(outputMergefn)
out_layer = out_ds.CreateLayer(outputMergefn, geom_type = geometrytype)
filelist = os.listdir(directory)
for file in filelist:
if file.startswith(filestartswith) and file.endswith(FileEndsWith):
print file
ds = ogr.Open(directory + file)
if ds is None:
print "This is None"
lyr = ds.GetLayer()
for feat in lyr:
out_feat = ogr.Feature(out_layer.GetLayerDefn())
out_feat.SetGeometry(feat.GetGeometryRef().Clone())
out_layer.CreateFeature(out_feat)
out_layer.SyncToDisk()
目前没有回答
相关问题 更多 >
编程相关推荐