python-2.7 - 使用gdal/ogr获取特征范围

标签 python-2.7 shapefile gdal ogr

感觉有些东西应该已经可以轻松完成,但是我找不到。

我最终想要做的是:我有一个shapefile,其中包含3个显示边界框的功能;我想使用这些特征之一在另一个shapefile或多边形中选择其中的所有特征。我使用ogr2​​ogr运行此程序,并使用-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))?后者只是返回图层范围,而前者不存在,但必须从要素几何中进行解析感觉笨拙。

最佳答案

事实证明,有一个内置的功能可以执行此操作,我4个小时的搜索(在原始帖子之前)只是无法发现它,直到我转而从事其他工作并偶然发现了它。

extent = geom.GetEnvelope()

希望这篇文章可以减轻其他人寻找该功能的麻烦。

关于python-2.7 - 使用gdal/ogr获取特征范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44975952/

相关文章:

r - 在 R 中使用 writeOGR 写入 shapefile 时出现问题

python - 如何在 python 中组合两个 numpy 数组元素?

python - 什么情况下urllib2会比IE8慢很多?

r - 将纬度/经度点映射到 R 中的形状文件

java - 使用 GeoTools 时无法找到 FactoryRegistry 类

r - 无法使用 sf() 和 rnaturalearth() 在 R 中提取湖泊几何数据

c - 通过 GDAL GDALAutoCreateWarpedVRT 在 C 中重新投影

python - 在python中读取csv文件两次

python - 生成较大字典的排列的字典

c++ - 奇怪的 GDAL 编译错误