2016-06-30 1 views

Répondre

2

Il semble que le problème est que lorsque la variable est remplie dans le fichier NetCDF, elle est définie pour insérer une valeur par défaut pour les valeurs manquantes. Maintenant, je suppose que vous devez supprimer ces valeurs par défaut après le fichier a été écrit et vous travaillez avec les données. Donc (en fonction de la façon dont vous accédez à la variable), je retirerais la variable du fichier NetCDF et l'assignerais à une variable python. C'est la première méthode qui me vient à l'esprit.

Utilisez une boucle pour parcourir et remplacer cette valeur par défaut avec 0

variable=NetCDF_variable #Assume default value is 1e10 
cleaned_list=[] 
for i in variable: 
    if i == 1e10: 
     cleaned_list.append(0) #0 or whatever you want to fill here 
    else: 
     cleaned_list.append(i) 

Si la valeur par défaut est un flotteur, vous pouvez regarder dans numpy.isclose si le code ci-dessus ne fonctionne pas. masking vos données dans le cas où les calculs que vous faites seraient rejetés en insérant un 0.

EDIT: L'utilisateur N1B4 fourni un moyen beaucoup plus propre et efficace de faire exactement la même chose que ci-dessus.

variable[variable == 1e10] = 0 
+3

Puisque les variables netCDF sont coulés à des tableaux numpy, variable '[variable == 1e10] = 0' les mêmes que accomplit ci-dessus et peut travailler sur des tableaux multidimensionnels. – N1B4

+0

Je savais qu'il y avait un moyen plus rapide, je suis encore en train d'apprendre la sténographie comme ça. Merci pour la suggestion, je vais l'ajouter à la réponse –