GPCP全球月降水量数据下载与读取

1.Global Precipitation Climatology Project (GPCP) 数据介绍
GPCP:(Global Precipitation Climatology Project,全球降水气候计划), 是由Global Precipitation Climatology Center(全球降水气候研究项目)综合了数十颗静止卫星和极轨卫星的红外和微波资料并经过全球多个台站数据校正后的卫星降水产品。数据作为热带地区降水研究的“准资料”历经几十年不断的改进与完善,目前已是version 2.3。
1)时间分辨率:从1979/01到2021年10月;
2)空间分辨率:2.5°纬度x 2.5°经度全球网格;88.75N - 88.75S, 1.25E - 358.75E;

2.数据下载
下载链接:https://www.ncei.noaa.gov/access/metadata/landing-page/bin/iso?id=gov.noaa.ncdc:C00979
在这里插入图片描述
https://psl.noaa.gov/data/gridded/data.gpcp.html
在这里插入图片描述
数据下载步骤:
1)打开链接:http://eagle1.umd.edu/GPCP_ICDR/
2)下载历史数据
在这里插入图片描述
在这里插入图片描述
3.数据处理
数据格式:netCDF-4

  • NetCDF(network Common Data Form)网络通用数据格式是一种面向数组型并适于网络共享的数据的描述和编码标准。
  • 从数学上来说,netcdf存储的数据就是一个多自变量的单值函数。用公式来说就是f(x,y,z,…)=value;
    函数的自变量x,y,z等在netcdf中叫做维(dimension) 或坐标轴(axix);
    函数值value在netcdf中叫做变量(Variables).

利用NetCDF可以对网络数据进行高效地存储、管理、获取和分发等操作。由于其灵活性,能够传输海量的面向阵列(array-oriented)数据,目前广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。

4.python读取数据与显示
Python读取NetCDF文件可以选择安装NetCDF4或者xarray工具包,这里安装NetCDF4。
(1)pip 安装NetCDF包pip install netCDF4
在这里插入图片描述
(2)读取nc文件

from netCDF4 import Dataset

nc_path = "D:/data/gpcp/2010/gpcp_v02r03_monthly_d201001_c20170616.nc"

nc=Dataset(nc_path)

print(nc.variables.keys())

# print(nc.variables['precip']) #查看某个变量的信息

# print(nc.variables['precip'].ncattrs()) #查看变量的属性信息

data = nc.variables['precip'][:] #读取变量的数据值

print(data)

GPCP关键字包括:dict_keys([‘latitude’, ‘longitude’, ‘time’, ‘lat_bounds’, ‘lon_bounds’, ‘time_bounds’, ‘precip’, ‘precip_error’])

(3)提取需要的字段,并可视化
1)可视化需要安装basemap:conda install basemap
报错:
在这里插入图片描述
python版本不满足条件,需要根据自己电脑配置下载对应版本的basemap,我的电脑配置win10,64位,python3.8.
去官网下载basemap安装包、pyproj:http://link.zhihu.com/?target=https%3A//www.lfd.uci.edu/~gohlke/pythonlibs/
在这里插入图片描述
在这里插入图片描述
下载完成后,重新安装(注意首先安装pyproj):
在这里插入图片描述
注意:先用cd定位到下载插件的位置,然后pip isntall + 完整的文件名(包括后缀),如pip install basemap-1.2.2-cp38-cp38-win_amd64.whl

安装成功后直接调用包。

2)可视化降雨数据
导入包:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

读取经纬度、降雨量信息:

nc_path = "D:/data/gpcp/2010/gpcp_v02r03_monthly_d201001_c20170616.nc"

fh=Dataset(nc_path,mode='r')

# 获取每个变量的值
lons = fh.variables['longitude'][:]
lats = fh.variables['latitude'][:]
precip = fh.variables['precip'][:]

precip_units = fh.variables['precip'].units

# 经纬度平均值
lon_0 = lons.mean()
lat_0 = lats.mean()

m = Basemap(lat_0=lat_0, lon_0=lon_0)
lon, lat = np.meshgrid(lons, lats)
xi, yi = m(lon, lat)

绘制图片:

precip = precip[0:1:, ::, ::]
cs = m.pcolor(xi, yi, np.squeeze(precip))

# Add Grid Lines
# 绘制经纬线
m.drawparallels(np.arange(-90., 91., 20.), labels=[1,0,0,0], fontsize=10)
m.drawmeridians(np.arange(-180., 181., 40.), labels=[0,0,0,1], fontsize=10)

# Add Coastlines, States, and Country Boundaries
m.drawcoastlines()
m.drawstates()
m.drawcountries()

# Add Colorbar
cbar = m.colorbar(cs, location='bottom', pad="10%")
cbar.set_label(precip_units)

# Add Title
plt.title('Precipitation')
plt.show()

fh.close()

报错:
在这里插入图片描述
报错原因:numpy版本低,需要更新版本。

pip uninstall numpy
conda install -y -c conda-forge numpy

如果还继续报错的话,再更新一下:pip install -U numpy

结果展示:
在这里插入图片描述

参考链接:
GPCP介绍、下载:https://climatedataguide.ucar.edu/climate-data/gpcp-monthly-global-precipitation-climatology-project

python数据可视化:https://blog.csdn.net/theonegis/article/details/50805408

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值