Arcgis操作系列一:shp矢量数据的面积计算
目录
- 前言
- 一、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矢量数据的面积计算相关推荐
- Arcgis操作系列4 - 影像纠偏配准和转坐标系
1.影像纠偏 实际操作过程中经常会遇到这样的情形,2个相同坐标系的影像数据,叠加到一起的时候可能会出现数据叠加不到一起,有的是稍微差几毫米的距离,可着急死人了,尤其是强迫症患者无法忍受,所以我们必须要 ...
- ArcGIS操作系列10- Arcmap 中矢量图层面积的计算方法
一.问题 由于一些需要我需要通过计算矢量边界的面积来确定实地面积,但是我遇到一些问题.计算面积的方法还是很简单的.但是出现以下问题: 1. 我的图层是地理坐标系而不是投影坐标系,无法计算面积,如 ...
- Arcgis操作系列15 - 西安80/wgs84转2000
一.矢量数据坐标系转换 工具:[工具箱---数据管理工具--投影和变换----投影/批量投影] 原理:将西安80坐标系的数据 坐标系投影为西安80地理坐标系,然后再次操作投影为地理2000坐标系,最后 ...
- Arcgis操作系列2 - ArcGIS和COORD软件进行坐标七参数转换的方法
一.数据参数注意事项 1.我们使用的测绘数据,例如: X 2835697.754 X为纬度 (7位数) Y 613544.641 Y为经度 (6位数) 如果是: X 2835697. ...
- ArcGIS操作系列9- Arcmap 线分段
1.原数据 2,需求 将高亮线截断变成3节 3.步骤 3.1 菜单栏---编辑器--开始编辑(如果没有该编辑器工具,需要调出来菜单栏空白处右键点击,选择编辑器前面打钩即可) 3.2点击编辑器右边工具裁 ...
- ArcGIS操作系列14- 经纬度互换、换算成米、两点的经纬度计算两点间的距离
1. 经纬度互换 度(DDD):E 108.90593度 N 34.21630度 1.1 如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒? ...
- Arcgis操作系列16-使用Arc Map创建渔网(fishnet)
1.目标:以生成一个范围包括黄陵县,格子大小为1000m的渔网为例. 2. 工具:Data Management Tools→Feature Class→Create Fishnet(数据管理工具-- ...
- ArcGIS操作系列13- 无法绘制一个或多个图层
1.原数据: 导入postgres数据库以后数据报错如下,数据也零零散散变成原来的一半了 2.原因 制作数据的时候拓扑关系有错误 3.解决方法: 3.1检查错误 打开工具箱---数据管理工具---要素 ...
- 【ArcGIS教程】(1)带有经纬度的EXCEL数据如何转换为shp矢量数据?
引言:在实践操作中我们经常需要把外界数据导入ArcGis,从而进行分析与处理.这时最常见的就是导入样本的经纬度,例如进行某次野外采样后需要查看采样点的空间分布,即可利用arcgis进行操作.具体如何操 ...
- geoserver系列(二)geoserver+shp矢量数据的发布
目录 一.内容概述 二.shp数据介绍 三.发布准备 1.数据准备 2.系统准备 四.发布流程 1.启动登录geoserver 2 .发布数据 1)点击数据存储 2)点击添加新的数据 3)选择数据源, ...
最新文章
- python使用fpdf2包和pdfrw包在已有的PDF页面上添加新的页
- pyaiml聊天机器人
- XamarinSQLite教程在Xamarin.Android项目中定位数据库文件
- 网络请求可以返回数据的网站_实例解析|Python加解密VIP网站反爬请求头实现数据爬取...
- phpmyadmin 主机名自动补全
- 数据库索引的作用和长处缺点
- 文本相似度计算python lda_如何识别“答非所问”?使用gensim进行文本相似度计算...
- linux查看网卡连接哪个cpu,Linux查看CPU/内存/网卡/操作系统信息
- js深拷贝和浅拷贝对数组的影响_javascript之浅拷贝与深拷贝
- HDOJ 4302 Holedox Eating (multiset || 线段树)
- 中国省份城市列表(汉字+拼音)
- GIT GUI(git的可视化工具)
- 南邮的计算机通信工程课程是什么,通信工程考研详解之南京邮电大学
- 如何在数学建模比赛中稳拿奖——个人100%获奖经验分享
- 蚁群算法 c语言,基本蚁群算法代码C版
- DBPedia知识图谱详细介绍
- 每日经典算法题(十六) 九九乘法表
- 安装LINUX操作系统(CENT OS)
- Discord/MidJourney注册遇到电话号码无效 invalid phone number
- 计算机电池维修心得,千米电脑维修师傅告诉你:笔记本电脑插电后,充不进去电怎么办?...
热门文章
- PS视频降噪去噪点插件;DeNoise英文可选 支持CS6- cc2019
- python中的主函数调用_调用主函数中的函数
- jsmind 线条_jsMind思维导图模式数据展示
- C盘空间不足怎么办?试试这款软件
- c语言中的局部变量和全局变量
- oracle执行计划explain,Oracle 常见的执行计划步骤(explain结果的Description数据参考)...
- php 检查货币类型_PHP如何获取货币汇率-百度经验
- Android------APP FPS测试
- 虚拟机安装win10专业版
- 重装系统数据恢复工具