1

J'utilise python 3.6 pour mapper des données de modèle climatique qui a la longitude d'origine de (0,360). J'utilise une basemap fonction appelée shiftgrid afin de déplacer toutes les valeurs de longitude dans mon ensemble de données à (-180,180). Cependant, je reçois toujours une carte vide. Toute suggestion serait utile. Merci!Python: utiliser shiftgrid pour changer la longitude

Voici mon code à ce jour:

#Longitude values: 
a=0 
b=360 

prcp = np.load('data.npy') 

data=np.average(prcp,axis=0) 

plt.figure() 
# create Basemap 
x1 = np.linspace(a,b, data.shape[1]) 
y1 = np.linspace(-90, 90, data.shape[0]) 
xx1, yy1 = np.meshgrid(x1, y1) 

data, x1 = shiftgrid(180., data, x1,start= False) 
+0

Je suppose que vous devez appeler 'shiftgrid' avant de créer meshgrid. – Serenity

Répondre

1

J'ai rencontré ce genre de problèmes moi-même. Ma solution était de transformer les coordonnées du fichier d'entrée en utilisant cdo (il y a un frontal python disponible pour cdo). Le changement peut être fait avec:

cdo sellonlatbox,-180,180,-90,90 input.nc output.nc 

ou, si vous avez l'extrémité avant python disponible, vous pouvez obtenir les données directement netCDF4.Dataset avec

from cdo import Cdo 
cdo = Cdo() 

data = cdo.sellonlatbox(
    '-180,180,-90,90', 
    input = 'input.nc', 
) 

Hope this helps.