收藏 分享(赏)

Python与开源GIS:根据空间过滤器选择要素.doc

上传人:HR专家 文档编号:11670016 上传时间:2020-11-05 格式:DOC 页数:3 大小:100.01KB
下载 相关 举报
Python与开源GIS:根据空间过滤器选择要素.doc_第1页
第1页 / 共3页
Python与开源GIS:根据空间过滤器选择要素.doc_第2页
第2页 / 共3页
Python与开源GIS:根据空间过滤器选择要素.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Python与开源GIS:根据空间过滤器选择要素2012-12-03 21:12作者:bukunu来源:本站浏览: 98 views我要评论字号:大中小摘要: 空间过滤器Spatial filters 如果说按照属性进行要素的选择,还是带有数据库的特征的话,那么,根据空间位置进行选择,则是地地道道的GIS功能。在OGR中,使用了Spatial filters(空间过滤)这一术语表征这一功能。 OGR提供的空间过滤功能.空间过滤器Spatial filters如果说按照属性进行要素的选择,还是带有数据库的特征的话,那么,根据空间位置进行选择,则是地地道道的GIS功能。在OGR中,使用了Spati

2、al filters(空间过滤)这一术语表征这一功能。OGR提供的空间过滤功能有两种,一种是SetSpatialFilter(),过滤某一类型的Feature,例如参数中使用Polygon,就是选出Layer中的所有Polygon所覆盖的要素(注意,只要相交即可,不必完全包含)。下面这段代码用了两套数据。world_borders是全球国界数据,cover.shp则是覆盖了非洲南部地区的一个多边形。下面先定义一个根据图层直接生成shape文件的函数,方便后面调用。12345678from osgeo import ogrdef create_shp_by_layer(shp, layer):o

3、utputfile = shpif os.access(outputfile, os.F_OK):driver.DeleteDataSource(outputfile)newds = driver. CreateDataSource ( outputfile )pt_layer = newds.CopyLayer ( layer, )newds.Destroy ()下面代码是使用cover.shp中的多边形来选择全球国界数据:1234567891011121314driver = ogr.GetDriverByName(ESRI Shapefile)world_shp = /gdata/wor

4、ld_borders.shpcover_shp = /gdata/cover.shpworld_ds = ogr.Open(world_shp)cover_ds = ogr.Open(cover_shp)world_layer = world_ds.GetLayer(0)cover_layer = cover_ds.GetLayer(0)print(world_layer.GetFeatureCount()cover_feats = cover_layer.GetNextFeature()poly = cover_feats.GetGeometryRef()world_layer.SetSpa

5、tialFilter(poly)out_shp = /gdata/world_cover.shpcreate_shp_by_layer(out_shp, world_layer)结果可以通过下面的图来看。另外还有SetSpatialFilterRect(minx, miny, maxx, maxy),参数输入四个坐标,可以选中矩形内的要素。123world_layer.SetSpatialFilterRect(50, 60, 25, 35)out_shp = /gdata/world_spatial_filter.shpcreate_shp_by_layer(out_shp, world_layer)同样可以打开GIS软件来查看结果。SetSpatialFilter(None)则是清空空间属性过滤器。这个可以通过打印图层中要素的数目来查看。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 其他相关文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报