2017-08-10 1 views
0

J'ai un fichier netcdf quotidien (20060101) et la dimension temporelle compte 144 étapes, soit 10 minutes dans le fichier. Maintenant, je veux créer un fichier netcdf pour chaque étape de 10 min avec nco. Donc, à la fin, il devrait créer 144 fichiers.nco coupe le fichier netcdf quotidien en fichiers de 10 minutes

Je l'ai déjà trouvé des questions similaires où ils utilisent

ncks -d time,min,max,stride infile.nc outfile.nc

Mais je ne sais pas comment écrire un code 144 la création de ces fichiers. Quelqu'un peut-il m'aider avec ça? Merci pour votre aide!

+0

Qu'avez-vous essayé et où échoue-t-il? Êtes-vous familier avec les boucles? Vous êtes plus susceptible d'obtenir de l'aide après nous avoir montré votre tentative, plutôt que de demander à quelqu'un d'autre d'écrire le code pour vous. – N1B4

Répondre

1

Trouvé Solution:

start=1131580800 # first time step in seconds 
for f in *_test.nc; do #$files 
    echo 'Processing' $f 
    for i in {0..17}; do 
    time=$(expr $start + 600 \* $i)     # calculates the next time step --> 600s correspond to 10 minute steps I wanted to have 
    time_new=$(date -d @$time '+_%H%M')    # extracting the time variable from my file and convert it to use them in the file names 
    outfile=$(echo $f|sed "s/_level2/$time_new/g") 
    ncks -d time,$i,$i $f $outfile     # split my original file to 10 min steps 
    done 
done 
1

Je n'ai pas testé mais je pense que vous pouvez le faire avec une ligne de CDO:

cdo splitsel,1 input.nc output 

Les moyens "1" diviser le fichier avec 1 timestep dans chaque fichier de sortie, ce que je pense est ce que vous demandiez.

+0

oui c'est vrai, mais parfois cdo change les méta-données, c'est pourquoi je cherchais un autre moyen de le faire. –

+1

CDO ne rencontre des problèmes que si les champs ne sont pas sur des grilles de type lat-lon "standard", sinon cela devrait fonctionner. Il ajoute la commande elle-même dans l'historique des champs d'attributs globaux, bien qu'il soit possible de la désactiver si elle n'est pas souhaitée. –