欢迎关注博主的微信公众号:“智能遥感”。

该公众号将为您奉上Python地学分析、爬虫、数据分析、Web开发、机器学习、深度学习等热门源代码。

Python的小伙伴们,你们好!上一节讲的是矢量数据重叠面积的解析应用,本节的应用主要建立缓冲区,来统计缓冲区内的矢量点的个数,希望对大家有所帮助。

本人的GitHub代码资料主页(持续更新中,多给Star,多Fork):

https://github.com/xbr2017

CSDN也在同步更新:

https://blog.csdn.net/XBR_2014

~~~~~~~~~~~~~~~~~~~~~~~~~~

编程环境:

操作系统:windows

Python版本:2.7

IDE版本:PyCharm 2018.2.4专业版

~~~~~~~~~~~~~~~~~~~~~~~~~~

分析地理特征时的另一个常见问题是确定它们彼此之间的距离。例如,住房刚需者在买房前很可能综合考虑多个候选小区到其周边学校、医院、超市、公交站等基础设施的实际距离。此时,本节的知识可能就会有助于购房者先进行空间分析,再作出买房的决定。

OGR包含两个测量工具:一个用于测量几何之间的距离,另一个用于创建缓冲多边形。缓冲区是一个多边形,它与原始几何体之间的距离延伸一定距离。

点、线、多边形缓冲区示意图

这里以美国有多少城市距离火山点15KM以内为例,下图是美国地区城市(灰色点)与火山(红色三角)分布图。

先将火山数据集缓冲15KM,由于整个图层上没有缓冲功能,因此需要单独缓冲每个火山点并将其添加到临时图层。完成后,可以将缓冲层与城市图层相交,以获得落在该15KM半径范围内的城市数量。最后输出符合要求的城市数量,具体实现代码如下:

# _*_ coding: utf-8 _*_
__author__ = 'xbr'
__date__ = '2018/11/6 12:17'from osgeo import ogrshp_ds = ogr.Open(r'D:\osgeopy-data\US')
volcano_lyr = shp_ds.GetLayer('us_volcanos_albers')  # 火山矢量数据
cities_lyr = shp_ds.GetLayer('cities_albers')  # 城市矢量数据
memory_driver = ogr.GetDriverByName('memory')
memory_ds = memory_driver.CreateDataSource('temp')
buff_lyr = memory_ds.CreateLayer('buffer')  # 创建缓冲区
buff_feat = ogr.Feature(buff_lyr.GetLayerDefn())
for volcano_feat in volcano_lyr:buff_geom = volcano_feat.geometry().Buffer(15000)  # 建立15KM的缓冲区tmp = buff_feat.SetGeometry(buff_geom)tmp = buff_lyr.CreateFeature(buff_feat)result_lyr = memory_ds.CreateLayer('result')
# 将火山点与城市矢量进行重叠
buff_lyr.Intersection (cities_lyr, result_lyr)
# 统计15KM内城市的个数
print('Cities: {}'.format(result_lyr.GetFeatureCount()))

可以分析出有72个城市距离火山点在15KM范围之内:

Cities: 72

Python地学分析 — 建立矢量数据缓冲区 06相关推荐

  1. Python地学分析 — GDAL对遥感影像重投影

    欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 本人的GitHub代码资料主页(持续 ...

  2. Python地学分析 — 地理空间参考系介绍

    欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 本人的GitHub代码资料主页(持续 ...

  3. Python地学分析 — 矢量数据集介绍

    欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 什么叫矢量数据,在这里,小编先给大家 ...

  4. Python地学分析 — GDAL将多个遥感图像叠加保存为tif文件

    欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 本人的GitHub代码资料主页(持续 ...

  5. Python小白的数学建模课-06.固定费用问题

    Python 实例介绍固定费用问题的建模与求解. 学习 PuLP工具包中处理复杂问题的快捷使用方式. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达人. 前文讲到几种典型 ...

  6. RFM模型的理解和python案例分析

    RFM模型是什么 RFM是客户关系管理(CRM:Customer Relationship Management)中一种重要的分析模型,通过研究一个客户的交易时间.交易频率和交易总金额来衡量客户的价值 ...

  7. 使用Python+Pandas+Statsmodels建立线性回归模型预测房价

    [综述] 本文通过使用Python+Pandas+Statsmodels建立简单一元线性回归模型.多元线性回归模型来预测房价. 主要内容来源自网页:https://www.learndatasci.c ...

  8. Python数据采集分析告诉你为何上海二手房你都买不起

    感谢关注Python爱好者社区公众号,在这里,我们会每天向您推送Python相关的文章实战干货. 来吧,一起Python. 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的 ...

  9. 《权力的游戏》Python探索性分析

    一:简介 <权力的游戏>(Game of Thrones),是美国HBO电视网制作推出的一部中世纪史诗奇幻题材的电视剧.该剧改编自美国作家乔治·R·R·马丁的奇幻小说<冰与火之歌&g ...

最新文章

  1. 凡普金科以互金 “头马”入选互联网企业百强的启示:创新为王
  2. 一个关于c++string比较的问题
  3. boost::signals2模块实现连接类测试
  4. ThinkPad X220i 刷白名单BIOS,改装第三方无线网卡
  5. php获取qzonetoken,QQ一键登录实现
  6. YOLO:实时目标检测
  7. jqxWidgets 常用代码
  8. php 获取 flv 部分视频,php – 获取flv视频长度
  9. 最长回文串之中心扩散法
  10. 营销管理手册_某连锁动物医院营销管理咨询项目方案成功汇报
  11. android.os.NetworkOnMainThreadException 异常处理
  12. 【JSOI2007】【BZOJ1029】建筑抢修(贪心,堆)
  13. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_5_Stream流中的常用方法_map...
  14. 计算机软考深圳积分,2020年软考证书能为深圳积分入户加分吗?
  15. vue+element PC系统自适应
  16. 工业级嵌入式WiFi模块 无线网关智能家居 WiFi音视频传输模块 WiFi转有线网口模块方案
  17. js正则表达式 URL格式匹配详解
  18. 编写一个制造各种车辆的程序。包含三个类,具体要求如下: (1)基类Vehicle,包含轮子数和汽车自身重量两个属性,一个两参数的构造方法,一个显示汽车信息的方法; (2)小轿车类Car,增加载客数属性
  19. 简单工厂、工厂、抽象工厂
  20. windows下安装mongodb时报错verify that you have sufficient privileges to start system services解决方法

热门文章

  1. 【C++登山之路之初露锋芒 2】——内联函数+ 引用+auto+nullptr关键字(万字详解,图片演示,结构原理)
  2. c语言switch顺序,switch-case的执行顺序,该怎么处理
  3. 使用JAVA Apache POI对图片进行裁剪展示
  4. 【论文精读】TACRED Revisited: A Thorough Evaluation of the TACRED Relation Extraction Task
  5. everything搜索指定路径下的多个文件
  6. 新加坡设自动巡逻机器人,助力城市精细化治理
  7. Linux下同型号USB相机端口绑定
  8. RecyclerView添加表格分割线
  9. python基础——数据可视化
  10. 5、判断、循环、数组综合练习案例(迷你DVD)