2017-06-09 1 views
0

Je travaille dans nco et j'ai rencontré ce problème difficile. Je dois réorganiser un calendrier de 360 ​​jours dans le calendrier grégorien normal de 365 jours. Dans le calendrier de 360 ​​jours chaque mois a 30 jours. Mon idée était d'ajouter un jour à un mois qui devrait se composer de 31 jours dans le calendrier grégorien et retirer un ou deux jours de février (année bissextile ou non-bissextile). Je sais comment supprimer des jours (simplement en copiant ce dont vous avez besoin dans un autre fichier avec ncks).Copiez le dernier jour du mois et ajoutez-le à la fin dans le fichier netcdf avec nco

Existe-t-il un moyen simple de copier le dernier jour d'un mois spécifique et de l'ajouter au même mois à la fin?

Mes fichiers s'étendent sur une année avec une résolution de 3 heures et je veux travailler avec la variable appelée tas (température). Ci-dessous j'ai ncdump'ed la partie la plus importante:

dimensions: 
rlon = 424 ; 
rlat = 412 ; 
time = UNLIMITED ; // (2880 currently) 

variables: 
double rlon(rlon) ; 
    rlon:standard_name = "grid_longitude" ; 
    rlon:long_name = "longitude in rotated pole grid" ; 
    rlon:units = "degrees" ; 
    rlon:axis = "X" ; 
double rlat(rlat) ; 
    rlat:standard_name = "grid_latitude" ; 
    rlat:long_name = "latitude in rotated pole grid" ; 
    rlat:units = "degrees" ; 
double time(time) ; 
    time:standard_name = "time" ; 
    time:units = "days since 1949-12-01 00:00:00" ; 
    time:calendar = "360_day" ; 
    time:long_name = "time" ; 
    time:axis = "T" ; 
float tas(time, rlat, rlon) ; 
    tas:grid_mapping = "rotated_pole" ; 
    tas:_FillValue = 1.e+20f ; 
    tas:missing_value = 1.e+20f ; 
    tas:standard_name = "air_temperature" ; 
    tas:long_name = "Near-Surface Air Temperature" ; 
    tas:units = "K" ; 
    tas:coordinates = "lon lat height" ; 
    tas:cell_methods = "time: point" ; 

J'ai hâte d'entendre des idées.

Répondre

1

J'ai résolu ce problème par une méthode plus longue. D'abord, je divise les fichiers annuels en mois. Pour chaque mois, j'ai ajouté et supprimé les jours nécessaires, puis concaténé les mois résultants.

Si quelqu'un a un Si les données à 360 jours méthode plus rapide s'il vous plaît partager

0

sont stockés dans douze fichiers mensuels, vous pouvez utiliser l'enregistrement ncrcat ajouter feature ainsi que des indices de hyperslab négatifs à compter à rebours à partir de la fin et ajouter le dernier enregistrement à lui-même

ncrcat --rec_apn -d time,-1 in.nc in.nc 

Assurez-vous de sauvegarder vos données en premier, car cela écrase l'entrée.