2017-06-22 1 views
0

Je ne suis pas capable de comprendre cela moi-même et espérais donc des idées de votre côté. J'essaie de créer un fichier netCDF-4 dans R en utilisant la bibliothèque netcdf4. Le fichier nc devrait contenir une variable, disons la température (ta), qui a 4 dimensions: longitude, latitude, temps et niveau de pression.Comment écrire un fichier netCDF avec des entrées de caractères dans la variable de dimension en utilisant R

Pour certaines raisons je voudrais que la dernière dimension "niveau de pression" soit composée d'entrées de caractères, comme "niveau supérieur", "niveau inférieur". Malheureusement, la fonction ncdim_def() n'autorise que des valeurs numériques et non des caractères.

J'ai examiné beaucoup de choses, y compris les commandes nco/cdo, mais je n'ai pas trouvé de solution. Est-ce que quelqu'un a une idée?

Toute aide serait grandement appréciée!

Répondre

0

Vous pouvez coder les niveaux supérieur et inférieur sous forme numérique, c.-à-d. 1 pour les niveaux supérieurs et 0 pour les niveaux inférieurs de pression.

Cela peut nécessiter un décodage de retour à la chaîne à un stade ultérieur.

0

J'ai trouvé une solution de contournement pour ma question. Donc ce que vous pouvez faire est:

  • créer un tableau avec deux lignes; rbind ("niveau supérieur", "niveau inférieur")
  • créer une dimension pour les ncols (dim_p1) et une pour les nrows (dim_p2) du tableau. IMPORTANT: utiliser ncdim_def (..., create_dimvar = FAUX)
  • créer une nouvelle variable avec ncvar_def (..., dim = liste (dim_p1, dim_p2), prec = "char")
  • utilisation ncvar_put() pour écrire le tableau dans la variable

Espérons que cela aide.