J'essaie de tracer des données de précipitation, à partir d'un fichier netCDF4, sur un fond de carte en utilisant python 3.6. Le code que j'utilise a parfaitement fonctionné sur un ensemble de données très similaire. La seule différence étant que les données de précipitation précédentes étaient en «cm» alors que les données que j'essaie actuellement de tracer sont en «kg m-2 s-1». Les variables trouvées dans ce fichier sont time, time_bnds, lat, lat_bnds, lon, lon_bnds et pr. pr est la variable de précipitation et celle que je cherche à tracer.Changement d'unités Python sur une carte de base
Voici mon code
from mpl_toolkits.basemap import Basemap, cm
from netCDF4 import Dataset as NetCDFFile
import matplotlib.pyplot as plt
nc = NetCDFFile('filename.nc','r')
p = nc.variables['prc']
data = p[:,:,0]
fig = plt.figure(figsize=(8,8))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
m = Basemap(projection='cyl',lon_0=180,lat_0=0,resolution='l')
m.drawcoastlines()
m.drawstates()
m.drawcountries()
ny = data.shape[0]; nx = data.shape[1]
lons, lats = m.makegrid(nx,ny)
x,y = m(lons, lats) # compute map proj coordinates.
cs=plt.contourf(x,-y,data*2592000,range(0,1000,10),cmap=cm.s3pcpn,latlon=True)
#data is multiplied by the amount of seconds in a month
cbar = m.colorbar(cs,location='bottom',pad="5%")
cbar.set_label('mm')
plt.show()
Si vous voulez essayer et exécuter ce code avec le même dossier que je l'utilise est un fichier netCDF4 a été téléchargé sur le site CMIP5: http://pcmdi9.llnl.gov/ Mon nom de fichier: (/ données /CCSM4/pr_Amon_CCSM4_historical_r1i1p1_185001-200512.nc) Toutefois, les données d'origine sont au format netCDF3_CLASSIC, vous devez donc le remplacer par netCDF4.
Y at-il une erreur que nous devrions connaître? –
Je ne reçois pas de message d'erreur lorsque j'exécute ce code, mais affiche une carte avec des couleurs aléatoires. Mais ce n'est pas la façon dont les données de précipitations sont censées regarder et je suppose que c'est parce que les unités sont fausses. @WoodyPride – CPG