Python:使用Basemap在netCDF文件中绘制地图

2024-05-15 23:01:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用netCDF文件绘制地图。然而,我对它还不熟悉,进展很小,我所做的只是学习一些教程。我在地图上叠加颜色时遇到了一些困难。这是我的代码(带下载的file):

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

data = Dataset('filename','r')


lat = data.variables['lat'][:]
lon = data.variables['lon'][:]
time = data.variables['time'][:]
lwe_thickness = data.variables['lwe_thickness'][:]
data.close()


mp = Basemap(projection = 'mill',
         llcrnrlon=lon.min(), 
         urcrnrlon=lon.max(),
         llcrnrlat=lat.min(),
         urcrnrlat=lat.max(),
         resolution = 'c')

x, y = np.meshgrid(lon, lat)
x, y = mp(lon, lat)

mp.drawcoastlines()
mp.drawstates()
mp.drawcountries()
mp.drawmapboundary()

parallels = np.arange(0.,90,30.)
mp.drawparallels(parallels,labels=[1,0,0,0])

meridians = np.arange(-180.,180.,30.)
mp.drawmeridians(meridians,labels=[0,0,0,1])

cmesh = mp.pcolormesh(x,y,lwe_thickness,shading='flat',cmap=plt.cm.jet,latlon=True)
cbar = mp.colorbar(cmesh, location='right')

plt.show() 

Tags: fromimportdataasnpcmpltmp