python与开源gis的资源 pdf_Python与开源GIS:根据空间过滤器选择要素

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

Python与开源GIS根据空间过滤器选择要素2012-12-03 2112作者bukunu来源本站浏览 98 views我要评论字号大中小摘要 空间过滤器Spatial filters 如果说按照属性进行要素的选择,还是带有数据库的特征的话,那么,根据空间位置进行选择,则是地地道道的GIS功能。在OGR中,使用了Spatial filters(空间过滤)这一术语表征这一功能。 OGR提供的空间过滤功能.空间过滤器Spatial filters如果说按照属性进行要素的选择,还是带有数据库的特征的话,那么,根据空间位置进行选择,则是地地道道的GIS功能。在OGR中,使用了Spatial filters(空间过滤)这一术语表征这一功能。OGR提供的空间过滤功能有两种,一种是SetSpatialFilter,过滤某一类型的Feature,例如参数中使用Polygon,就是选出Layer中的所有Polygon所覆盖的要素(注意,只要相交即可,不必完全包含)。下面这段代码用了两套数据。world_borders是全球国界数据,cover.shp则是覆盖了非洲南部地区的一个多边形。下面先定义一个根据图层直接生成shape文件的函数,方便后面调用。12345678from osgeo import ogrdef create_shp_by_layershp, layeroutputfile shpif os.accessoutputfile, os.F_OKdriver.DeleteDataSourceoutputfilenewds driver. CreateDataSource outputfile pt_layer newds.CopyLayer layer, newds.Destroy 下面代码是使用cover.shp中的多边形来选择全球国界数据1234567891011121314driver ogr.GetDriverByNameESRI Shapefileworld_shp /gdata/world_borders.shpcover_shp /gdata/cover.shpworld_ds ogr.Openworld_shpcover_ds ogr.Opencover_shpworld_layer world_ds.GetLayer0cover_layer cover_ds.GetLayer0printworld_layer.GetFeatureCountcover_feats cover_layer.GetNextFeaturepoly cover_feats.GetGeometryRefworld_layer.SetSpatialFilterpolyout_shp /gdata/world_cover.shpcreate_shp_by_layerout_shp, world_layer结果可以通过下面的图来看。另外还有SetSpatialFilterRectminx, miny, maxx, maxy,参数输入四个坐标,可以选中矩形内的要素。123world_layer.SetSpatialFilterRect50, 60, 25, 35out_shp /gdata/world_spatial_filter.shpcreate_shp_by_layerout_shp, world_layer同样可以打开GIS软件来查看结果。SetSpatialFilterNone则是清空空间属性过滤器。这个可以通过打印图层中要素的数目来查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值