Python语言在地球科学交叉领域中的技术应用

Python是功能强大、免费、开源,实现面向对象的编程语言,Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台(x86和arm),Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。Python具有丰富和强大的库,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。除了Python标准库,几乎所有行业领域都有相应的Python软件库,随着NumPy、SciPy、Matplotlib和Pandas等众多Python应用程序库的开发,Python在科学和工程领域地位日益重要,在数据处理、科学计算、数学建模、数据挖掘和数据可视化方面的优异性能使得Python在地球科学中地理、气象、气候变化、水文、生态、传感器等领域的学术研究和工程项目中得到广泛应用并高效解决各种数据分析问题,可以预见未来Python将成为科学和工程领域的主流程序设计语言。

CMIP6月数据(500G+)

包含变量:温压湿风辐射降水

包含情景:historical、ssp126、ssp245、ssp370、ssp585

CMIP6日数据(1.8T+)

包含变量:温压湿风辐射降水

包含情景:historical、ssp126、ssp245、ssp370、ssp585

全球VIPPHEN物候数据(40G+)

时间:1981-2014,年数据

空间分辨率:5.6km

ERA5-LAND陆面再分析数据(5T左右)

时间:1951.1.1-2021.12.31 时间分辨率:hourly

空间分辨率:0.1°(等角lonlat投影+wgs84)

包含11个变量:温度、气压、辐射、蒸发、降水、湿度【详情见数据说明文件】

1、提供虚拟机(Virtual Box)文件(预装好Anaconda环境,可直接使用)

2、提供原始数据和中间临时文件

专题一、Python重点工具

Numpy:科学计算

Scipy:科学计算

Sklearn:机器学习

Matplotlib:可视化

Cartopy:地理数据可视化

GeoPandas:地理数据分析

专题二、常见地球科学数据

1、站点数据:

GSOD

GHCN

ISMN:国际土壤湿度测量网络数据

FLUXNET:全球通量观测网络数据

2、格点观测数据

CRU

CN05.1

OISST、HadSST

3、再分析:

ERA5

GLDAS

4、遥感数据:

GLEAM

Landsat

MODIS

TRMM

SMAP:土壤湿度主动被动遥感数据

专题三、使用Xarray处理netCDF和Geotiff数据 Xarray

读取&写入 netCDF文件

Groupby & resample 对时间、空间信息进行操作

Rasterio & rioxarray

专题四、使用Pysat进行大空间分析

1. 空间自相关分析

分析干旱事件发生的空间聚集性

2. 空间回归模型

建模气温与地形因素的空间关系

GWR模型评估地形对降水分布的局部影响

3. 空间点模式分析

探测极端天气事件的热点区域

4. 时空数据分析

评估城市热岛效应的时空演化

专题五、使用Dask进行大数据并行计算

使用Dask进行大数据并行计算

Arrays、DataFrames

无结构数据的并行处理

延迟计算

案例一:

并行处理长时间序列的TRMM降水数据,识别极端降水事件的时空分布特征

案例二:

利用Dask并行计算,快速监测全球范围内干旱的发生、发展和持续时间

专题六、使用Pandas分析时间序列数据-1

案例一:时间序列填补

案例二:极端风速重现期分析

案例三:台风个数统计

专题七、使用Pandas分析时间序列数据-2

1、环流指数与温度、降水变化的关联性

各环流指数对全球及区域温度变化的影响

环流指数与极端高温/低温事件的联系

环流指数与干旱/洪水事件的关联

环流指数对季风系统的影响

2、空间插值

使用Kriging进行站点数据插值

使用IDW插值生成高分辨率气温场

3、缺测数据插补

针对地面站点数据中的缺失值进行插补

利用机器学习算法插补遥感数据中的缺测像元

结合空间插值和时间插值等多种方法提高数据质量

专题八、使用Python处理遥感

数据1、以Landsat数据为例

1、大数据的可视化

GB级数据可视化

2、植被指数计算

3、裁剪区域

使用mask掩膜文件裁剪

使用shapefile文件裁剪

专题九、使用Python处理遥感

数据2---以MODIS数据为例

1、预备工作:

Python读取HDF4-EOS数据

使用GDAL库预处理

转投影为wgs84+lonlat

拼接多景影像

2、案例一:土地利用分析(MOD12C1)

2000-2020年青藏高原土地利用分析

分析不同土地利用分类上气温和降水的变化

3、案例二:生态系统生产力分析(MOD17A2)

青藏高原草场上土地利用GPP变化

分析草场GPP与降水之间关系(ERA5再分析数据)

4、案例三:分析积雪覆盖时间(MOD10A2)

2000-2020年间青藏高原积雪时间统计

分析祁连山不同高程带积雪时间统计(DEM:GTOP30S)

5、案例四:积雪与生产力之间的关系(MOD10A2和MOD17A2)

分析新疆北疆积雪覆盖时间与春季GPP的变化

专题十、使用Python处理站点数据以GSOD和气象共享网数据为例

1、数据的读取

读取美国NOAA的GSOD日值数据

读取气象共享网日值数据

2、数据清洗:

数据整理

异常值检测

阈值法

模型法

孤立森林

3、多时间尺度的统计:

年尺度统计

季尺度统计

4、站点插值:(随机森林树)

利用高程、经纬度插值气温数据

专题十一、使用Python处理遥感水文数据以TRMM遥感降水数据和GLEAM数据等 案例一:空间降尺度

使用NDVI、DEM和机器学习算法对TRMM降水数据降尺度

案例二:分析蒸散数据的年际变化

读取GLEAM数据,并分析蒸散发的年际变化

比较MODIS ET产品与GLEAM的差异

案例三:使用随机森林算法估算地表蒸散发

GLEAM和ERA5数据建立机器学习估算模型

在区域尺度上进行长时间序列模拟

3、案例三:比较多套土壤湿度产品

比较GLDAS、GLEAM和CCI SM

案例四:分析降水~蒸散发-土壤湿度关系

分析降水~蒸散发-土壤湿度的年际变化

专题十二、使用Python处理遥感和模式数据

以PKU GIMMS NDVI遥感降水数据和GLDAS数据为例

案例一:结合GIMMS NDVI和陆面模式数据分析干旱影响

获取陆面模式模拟的土壤湿度数据

建立植被生产力与干旱的响应关系

评估不同地区的干旱敏感性

案例二:青藏高原地区干旱对高寒草地生态系统的影响

基于NDVI识别青藏高原历史干旱年份

结合GLDAS模拟的土壤温湿度等数据,分析干旱对植被的影响机制

专题十三、使用Python处理气候变化数据1观测数据

案例一:百年气温趋势:CRU数据

案例二:百年海温趋势:HadSST

案例三:再分析数据处理

ERA5数据气温评估

专题十四、使用Python进行气候诊断分析

在GHCN站点数据基础上

使用Mann-Kendall趋势检验

使用Mann-Kendall突变分析

和Sen's slope估计气候变化趋势

使用小波分析等分析周期

专题十五、使用Python处理气候变化数据2 以CMIP6数据为例

降尺度

Delta方法

百分位校正方法

案例一:计算极端气候指数

案例二:未来气候变化背景下中国地区GPP变化(CMIP6+MOD17+机器学习)

案例三:未来气候变化背景下中国地区土地利用变化

专题十六、使用Python对WRF模式数据后处理

案例一:空间坐标重采样

案例二:风速垂直高度插值

获取风机70和100m高度的风速和风向

专题十七、使用Python运行生态模型 以CN05.1数据和Biome-BGC生态模型为例

1、模型讲解

2、气象数据的准备

3、控制文件生成

4、模式的运行

Muliprocesing 并行运行

5、模式后处理

结果统计

结果可视化(NPP)

原文链接https://mp.weixin.qq.com/s?__biz=MzUyNzczMTI4Mg==&mid=2247686676&idx=3&sn=758db448cf19e1ec623538dae7453c39&chksm=fa774529cd00cc3ffcdf8e1fe1618b1e8ddaed47705e5b71a44c76161412fe86e95bb7341fe7&token=1908211715&lang=zh_CN&scene=21&poc_token=HNJ_Xmaj_1-_vLjJCeOHQIX_5RXWDfytqv6CBztN

相关推荐
Theodore_10222 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou2 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书2 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
----云烟----3 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024064 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·4 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic4 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it4 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康4 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神5 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式