Python地理处理01-基于栅格单元与栅格单元的分区统计
现实问题
在研究过程中,经常会遇到要对各个区域的某些数据进行分区统计的情况,如对某地区的各个行政区内的平均温度进行统计。又如,统计各个行政区内建成区的面积等等。一般这种分区统计可直接在ArcGIS中完成,ArcGIS空间分析工具箱中提供非常丰富的分区统计工具供用户调用:
当前解决方案存在的问题
这些工具中输入的区域可以是栅格的或者是矢量的,值数据只能是栅格的。GUI提供的工具固然方便,但是,如果使用程序自动化的完成这些功能的话是不是更好呢。当前,关于Python分区统计工具,根据区域数据的格式,可分为两类:
- 矢量边界
- 栅格边界
矢量边界的分区统计可以使用ArcGIS/arcpy的分区统计
工具进行处理,开源GIS方面,有两个Python库也可以进行处理,一个是rasterstats,另一个库便是大名鼎鼎的GDAL。但是在栅格区域方面,虽然实现过程很简单,但是目前没有找到合适的包。
解决方案
下面是基于栅格单元与栅格单元的分区统计的源代码:
import numpy as np
import pandas as pddef zonal_statistic(zonal_arr, data_arr, stats_field=['mean'], nodata=255):"""Parameters----------zonal_arr:分区统计的区域数据data_arr:分区统计中需要作统计的数据stats_field:分区统计的字段,有均值、最大最小值、总数等nodata: 区域中nodata值,默认为255:rtype: object"""classes_list = np.array(sorted(np.unique(zonal_arr)))classes_list = classes_list[classes_list != nodata]classes_list = classes_list[~np.isnan(classes_list)]if classes_list.size == 0:return pd.DataFrame()zonal_sta_list = []zonal_sta = pd.Series()for i in classes_list:if 'mean' in stats_field:zonal_sta['mean'] = np.nanmean(data_arr[zonal_arr == i])else:zonal_sta['mean'] = np.nanif 'max' in stats_field:zonal_sta['max'] = np.nanmax(data_arr[zonal_arr == i])else:zonal_sta['max'] = np.nanif 'min' in stats_field:zonal_sta['min'] = np.nanmin(data_arr[zonal_arr == i])else:zonal_sta['min'] = np.nanif 'count' in stats_field:zonal_sta['count'] = len(data_arr[zonal_arr == i])else:zonal_sta['count'] = np.nanzonal_sta_copy = zonal_sta.copy()zonal_sta_list.append(zonal_sta_copy)return pd.DataFrame(zonal_sta_list, index=classes_list)[stats_field]
Python地理处理01-基于栅格单元与栅格单元的分区统计相关推荐
- python合并单元格居中_Python基于xlrd模块处理合并单元格
目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我们实际 ...
- Python地信专题 | 基于geopandas玩转地图可视化
文章来源于Python大数据分析,作者费弗里 本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes[1] ...
- python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}
相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...
- 【笔记】《Python地理空间分析指南(第2版)》
转载地址:https://blog.csdn.net/jianbinzheng/article/details/80215228 概述部分 地理空间数据 地理空间技术概览 Python地理空间分析工具 ...
- python空间分析_读书笔记——《python地理空间分析指南》
本文为<Python地理空间分析指南(第2版)>的读书摘录,顺便挖个坑,进一步对python的几个包做学习整理. 本笔记的用途:了解python地理空间处理的技术框架和实现途径. 第三章 ...
- Python地信专题 |基于geopandas的空间数据分析-深入浅出分层设色
点击蓝字关注我,有干货领取! 本文对应代码和数据已上传至我的Github仓库: https://github.com/CNFeffery/DataScienceStudyNotes[1] 已发布: P ...
- Bootstrap学习笔记01【快速入门、栅格布局】
Java后端 学习路线 笔记汇总表[黑马程序员] Bootstrap学习笔记01[快速入门.栅格布局][day01] Bootstrap学习笔记02[全局CSS样式.组件和插件.案例_黑马旅游网][d ...
- Python 自然语言处理(基于jieba分词和NLTK)
----------欢迎加入学习交流QQ群:657341423 自然语言处理是人工智能的类别之一.自然语言处理主要有那些功能?我们以百度AI为例 从上述的例子可以看到,自然语言处理最基本的功能是词法分 ...
- Python读写矢量数据(2)矢量数据写入(属性数据)——Python地理数据处理学习分享
这一节主要介绍矢量数据的写入(只有属性数据,无几何),如果有读者没有读取的基础建议先看一下上一篇文章,需要对矢量数据读取有一定的了解才能继续学习本节.在这里我们用到的数据仍为goble文件夹下的数据, ...
最新文章
- mysql 30天销量_mysql查询今天,昨天,近7天,近30天,本月,上一月数据方法
- mysql三范式_MySQL设计之三范式的理解
- Serializable的作用
- Fiori extension hook和Hybris的template
- 扼杀 304,Cache-Control: immutable
- “两小学生研究喝茶抗癌获奖”,官方回应:经老师培训独立完成
- Python网络请求库Requests,妈妈再也不会担心我的网络请求了(二)
- Coding the Matrix作业Python Lab及提交方法
- C语言之文件读写探究(四):fwrite、fread(一次读写一块数据(二进制操作))
- 应届生求职简历HTML模板
- 数仓工具hive概述
- PAT 1034 有理数四则运算 python
- Kernel space lock contention配置及其使用
- 苹果账户登录_开心,安卓手机支持和iPhone内APP账户互通
- docker默认ip地址修改
- 2020第二周美赛感想
- Word文档如何进行拆分成多个文档?
- 机器学习:模型评价指标总结
- 复旦计算机系吴昊,数学科学学院候选好导师访谈——吴昊老师
- 计算机发布信息的方法,介绍两种用电脑给手机发短信的方法