目录

  • 前言
  • 一、Arcgis中计算湿地面积占城市的比例
  • 二、python求湿地占城市的面积比例

前言

经常需要知道一个城市中湿地、绿地、道路等在整个城市占地的百分比,在这里我用Arcgis和python分别演示给大家看。


一、Arcgis中计算湿地面积占城市的比例

1、这里以新奥尔良城市为例,这是一张包含新奥尔良城市在内的水体和湿地的shp文件图。

2、打开属性表,可以看到Feature分为多种类型:Lake(水体)和Swamp or Marsh等(这里把水体外的统称为湿地)。
3、按属性选择筛选出湿地


4、把新奥尔良城市和湿地shp图(包含奥尔良城市在内)进行相交,得到奥尔良城市的湿地图

5、打开奥尔良城市的湿地图属性表,新建属性字段area,通过字段计算器得到每个要素的面积。


6、同样的,我们计算新奥尔良城的面积

7.计算湿地占比
新奥尔良城湿地各个要素的总和如下

二、python求湿地占城市的面积比例

代码如下:

import os
from osgeo import ogr
from ospybook.vectorplotter import VectorPlotter
vp = VectorPlotter(True)
data_dir = r'C:\\Users\\zijiancao\\Desktop\\osgeopy-data\\osgeopy-data\\osgeopy-data'
#打开该地址的数据源
water_ds = ogr.Open(os.path.join(data_dir, 'US', 'wtrbdyp010.shp'))
#获取图层,shp文件只有1个图层
water_lyr = water_ds.GetLayer(0)
# 得出湿地。这里按属性选择出湿地,不是lake都认为是湿地
water_lyr.SetAttributeFilter("Feature != 'Lake'")
#通过clone复制湿地图层
marsh_feat = water_lyr.GetNextFeature()
marsh_geom = marsh_feat.geometry().Clone()
# 获得新奥尔良边城市边界
nola_ds = ogr.Open(os.path.join(data_dir, 'Louisiana', 'NOLA.shp'))
nola_lyr = nola_ds.GetLayer(0)
#通过clone复制奥尔良湿地图层
nola_feat = nola_lyr.GetNextFeature()
nola_geom = nola_feat.geometry().Clone()
#空间过滤。求出奥尔良城市的所有湿地
water_lyr.SetSpatialFilter(nola_geom)
wetlands_area = 0
# 累加多边形面积
for feat in water_lyr:intersect = feat.geometry().Intersection(nola_geom)wetlands_area += intersect.GetArea()
pcnt = wetlands_area / nola_geom.GetArea()
print('{:.1%} of New Orleans is wetland'.format(pcnt))

结果图:

Arcgis操作系列一:shp矢量数据的面积计算相关推荐

  1. Arcgis操作系列4 - 影像纠偏配准和转坐标系

    1.影像纠偏 实际操作过程中经常会遇到这样的情形,2个相同坐标系的影像数据,叠加到一起的时候可能会出现数据叠加不到一起,有的是稍微差几毫米的距离,可着急死人了,尤其是强迫症患者无法忍受,所以我们必须要 ...

  2. ArcGIS操作系列10- Arcmap 中矢量图层面积的计算方法

    一.问题 由于一些需要我需要通过计算矢量边界的面积来确定实地面积,但是我遇到一些问题.计算面积的方法还是很简单的.但是出现以下问题: 1.    我的图层是地理坐标系而不是投影坐标系,无法计算面积,如 ...

  3. Arcgis操作系列15 - 西安80/wgs84转2000

    一.矢量数据坐标系转换 工具:[工具箱---数据管理工具--投影和变换----投影/批量投影] 原理:将西安80坐标系的数据 坐标系投影为西安80地理坐标系,然后再次操作投影为地理2000坐标系,最后 ...

  4. Arcgis操作系列2 - ArcGIS和COORD软件进行坐标七参数转换的方法

    一.数据参数注意事项 1.我们使用的测绘数据,例如: X  2835697.754   X为纬度  (7位数) Y  613544.641   Y为经度  (6位数) 如果是: X  2835697. ...

  5. ArcGIS操作系列9- Arcmap 线分段

    1.原数据 2,需求 将高亮线截断变成3节 3.步骤 3.1 菜单栏---编辑器--开始编辑(如果没有该编辑器工具,需要调出来菜单栏空白处右键点击,选择编辑器前面打钩即可) 3.2点击编辑器右边工具裁 ...

  6. ArcGIS操作系列14- 经纬度互换、换算成米、两点的经纬度计算两点间的距离

    1. 经纬度互换 度(DDD):E 108.90593度    N 34.21630度 1.1  如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒? ...

  7. Arcgis操作系列16-使用Arc Map创建渔网(fishnet)

    1.目标:以生成一个范围包括黄陵县,格子大小为1000m的渔网为例. 2. 工具:Data Management Tools→Feature Class→Create Fishnet(数据管理工具-- ...

  8. ArcGIS操作系列13- 无法绘制一个或多个图层

    1.原数据: 导入postgres数据库以后数据报错如下,数据也零零散散变成原来的一半了 2.原因 制作数据的时候拓扑关系有错误 3.解决方法: 3.1检查错误 打开工具箱---数据管理工具---要素 ...

  9. 【ArcGIS教程】(1)带有经纬度的EXCEL数据如何转换为shp矢量数据?

    引言:在实践操作中我们经常需要把外界数据导入ArcGis,从而进行分析与处理.这时最常见的就是导入样本的经纬度,例如进行某次野外采样后需要查看采样点的空间分布,即可利用arcgis进行操作.具体如何操 ...

  10. geoserver系列(二)geoserver+shp矢量数据的发布

    目录 一.内容概述 二.shp数据介绍 三.发布准备 1.数据准备 2.系统准备 四.发布流程 1.启动登录geoserver 2 .发布数据 1)点击数据存储 2)点击添加新的数据 3)选择数据源, ...

最新文章

  1. python使用fpdf2包和pdfrw包在已有的PDF页面上添加新的页
  2. pyaiml聊天机器人
  3. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件
  4. 网络请求可以返回数据的网站_实例解析|Python加解密VIP网站反爬请求头实现数据爬取...
  5. phpmyadmin 主机名自动补全
  6. 数据库索引的作用和长处缺点
  7. 文本相似度计算python lda_如何识别“答非所问”?使用gensim进行文本相似度计算...
  8. linux查看网卡连接哪个cpu,Linux查看CPU/内存/网卡/操作系统信息
  9. js深拷贝和浅拷贝对数组的影响_javascript之浅拷贝与深拷贝
  10. HDOJ 4302 Holedox Eating (multiset || 线段树)
  11. 中国省份城市列表(汉字+拼音)
  12. GIT GUI(git的可视化工具)
  13. 南邮的计算机通信工程课程是什么,通信工程考研详解之南京邮电大学
  14. 如何在数学建模比赛中稳拿奖——个人100%获奖经验分享
  15. 蚁群算法 c语言,基本蚁群算法代码C版
  16. DBPedia知识图谱详细介绍
  17. 每日经典算法题(十六) 九九乘法表
  18. 安装LINUX操作系统(CENT OS)
  19. Discord/MidJourney注册遇到电话号码无效 invalid phone number
  20. 计算机电池维修心得,千米电脑维修师傅告诉你:笔记本电脑插电后,充不进去电怎么办?...

热门文章

  1. PS视频降噪去噪点插件;DeNoise英文可选 支持CS6- cc2019
  2. python中的主函数调用_调用主函数中的函数
  3. jsmind 线条_jsMind思维导图模式数据展示
  4. C盘空间不足怎么办?试试这款软件
  5. c语言中的局部变量和全局变量
  6. oracle执行计划explain,Oracle 常见的执行计划步骤(explain结果的Description数据参考)...
  7. php 检查货币类型_PHP如何获取货币汇率-百度经验
  8. Android------APP FPS测试
  9. 虚拟机安装win10专业版
  10. 重装系统数据恢复工具