CN海棠依旧 2021-03-23 13:16 采纳率: 50%
浏览 932
已采纳

如何使用Python将0.25度乘0.25度的气象数据统一为0.5度乘0.5度的气象数据?

我使用的数据为ERA5数据的2米气温【t2m】(附下载链接:https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-single-levels-monthly-means?tab=overview),使用Python语言进行处理。ERA5的2米气温数据经纬度分辨率为0.25度乘0.25度,按照工作要求,需要把分辨率降为0.5度乘0.5度,因为Python接触时间不长,我使用的方法为(如下面代码所示)

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

file = 'G:\\Data\\TP_and_2mT_1979-2019_Monthly.nc'
a = Dataset(file)

lon = a.variables["longitude"][:]
lon = lon[::2]
lat = a.variables["latitude"][:]
lat = lat[::2]
t2m = a.variables["t2m"][:]
t2m = t2m[-1]
num = 1
for i in range(720):
    t2m = np.delete(t2m, num, axis=1)
    num = num + 1
t2m = t2m - 273.15
t2m1 = np.zeros([361, 720])

lon0 = lon.mean()
lat0 = lat.mean()
m = Basemap(lat_0=lat0, lon_0=lon0)
m.drawparallels(np.arange(-90., 91., 10.), labels=[1, 0, 0, 0], fontsize=5)
m.drawmeridians(np.arange(-180., 181., 20.), labels=[0, 0, 0, 1], fontsize=5)
m.drawcoastlines()
lon1, lat1 = np.meshgrid(lon, lat)
xi, yi = m(lon1, lat1)

for i in range(361):
    for j in range(720):
        t2m1[i, j] = t2m[i, j]

m1 = m.contourf(xi, yi, t2m1, 300, cmap='jet')
Tu_li = m.colorbar(m1, location='bottom', pad="10%")
plt.savefig('G:\\Data_dispose\\Text10', dpi=300)

思路为,使用列表的操作方法,将经纬度隔行隔列取,这样就去掉了一半的经纬度数据,将0.25度分辨率变为0.5度,同时用处理数组的方法,也将气温数据隔行隔列取但是操作的结果出现很大的差错(如生成图)

之后不知道该如何处理,想请教一下大家,我的编程思路有什么错误,或者大家有什么更好的方法处理这个问题,小白向大佬们求教。时间紧张,谢谢大家了。

  • 写回答

5条回答 默认 最新

  • 深白色的风 2021-03-23 14:11
    关注
    for i in range(361):
    
    
    
        t2m = np.delete(t2m, num, axis=0)
    
    
    
        num = num + 1

    第18行之后加个循环处理掉纬度上的多余数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号