gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:45:13 25 4
gpt4 key购买 nike

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

我最终想要做的是:我有一个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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com