J'ai une variable dans un fichier NetCDF qui a une valeur par défaut si la variable est nulle. Comment supprimer cette valeur ou la modifier à 0 lorsque la variable manque une valeur?Variables NetCDF ayant la valeur de remplissage/valeur manquante
Répondre
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
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
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 –