这感觉就像应该已经有一个功能可以轻松做到的事情,但我找不到一个。使用gdal/ogr获取功能范围
我最终试图做的是什么:我有一个带有3个特征的shapefile,它们显示边界框;我想使用这些功能之一来选择其他shapefile或polygons中的所有功能。我使用ogr2ogr运行,使用-clipsrc和-clipsrcwhere标志从我的边界框shapefile中选择我的边界框。这很好,但我不能包括或排除掉在边界的多边形,我不希望它们被裁剪掉。所以,我想我会使用-spat标志,而只是导入边界框多边形范围。
我知道我能得到我的多边形的程度有:
polygon = 'mouth'
inDriver = ogr.GetDriverByName("ESRI Shapefile")
inDataSource = inDriver.Open(extent_shpfile, 1)
inLayer = inDataSource.GetLayer()
select = "name = '" + polygon + "'"
inLayer.SetAttributeFilter(select)
for feature in inLayer: #inLayer is always of size one because polygon is a unique value
geom=feature.GetGeometryRef()
在这里,我可以解析出的geom的值来获得最小和最大x和y的值。是不是有一个ogr调用已经这样做(如inLayer.GetFeatureExtent()或inLayer.GetExtent(feature_fid)?后者只是返回图层范围,前者不存在,但必须从特征几何解析它感觉笨重。
由于它的工作!我想要得到我的图层中每个要素的几何图形的范围,所以我可以将它们剪辑到一个边框“.tif”。另一种做法是,在一行中是'feature.GetGeometryRef()。GetEnvelope()' – DarkCygnus