2016-11-19 1 views
0

J'utilise la commande suivante pour vider le contenu de la variable « » dans un tas fichier netcdf tas_EUR-44_historical.ncdécharge netcdf variable dans une plage

ncdump -v tas tas_EUR-44_historical.nc 

est une variable tas de trois dimensions composé de le temps, la latitude et SAPT de longitude (temps, rlat, rlon)

maintenant je dois vider la première valeur du temps, 0, pour rlat allant de 0 à 5 et rlon allant de 0 à 5.

Est-ce quelqu'un sait comment cela peut-il être fait?

Merci!

Répondre

0

Vous pouvez utiliser ncks

NCK temps -d, 0 -d rlat, 0,5 -d rlon, 0,5 in.nc out.nc

+0

Cher Charlie, je suis au courant de cette méthode . Ce que je veux explicitement, c'est utiliser ncdump puis visualiser les valeurs dans la région demandée sans créer de fichier out.nc. –

+0

Je ne suis pas sûr de ce que vous voulez dire par visualiser. Contrairement à ncdump, ncks affichera l'hyperslab des valeurs à afficher au format CDL (sans générer de fichier .nc) si vous lui donnez le commutateur --cdl: ncks --cdl -d time, 0 -d rlat, 0,5 - d rlon, 0,5 in.nc –

1

Cela dépend fortement du type d'outils que vous souhaitez utiliser. C'est une tâche très triviale avec la plupart des langages de programmation ("Python/R/..."), si vous voulez un outil en ligne de commande, vous pouvez regarder NCO et surtout sa commande ncks (NetCDF Kitchen Sink).

Par exemple, si j'ai un fichier NetCDF (sortie ncdump -h)

netcdf u.xz { 
dimensions: 
    xh = 256 ; 
    y = 1 ; 
    z = 160 ; 
    time = UNLIMITED ; // (481 currently) 
variables: 
    float time(time) ; 
     string time:units = "Seconds since start of experiment" ; 
    float xh(xh) ; 
    float y(y) ; 
    float z(z) ; 
    float u(time, z, xh, y) ; 
} 

Je peux extraire par exemple le premier enregistrement de temps à l'aide:

ncks -d time,0,0 u.xz.nc test.nc 

Ou, quelque chose de plus proche de votre question, sélectionner le premier enregistrement temporel et découper les dimensions spatiales:

ncks -d time,0,0 -d xh,0,5 -d z,0,5 u.xz.nc test.nc 

Chaque fois que le fichier NetCDF manipulé est écrit dans un nouveau fichier. Vous pouvez laisser le dernier argument test.nc pour vider la sortie à l'écran, ou simplement vider la sortie de test.nc avec ncdump.