numpy.ndarray netcdf

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sophy
User
Beiträge: 10
Registriert: Dienstag 12. Januar 2010, 10:34

Hallo!
ich möchte meinen output gerne im NetCDF Format abspeichern. Bei den Daten, die type array sind ist das kein Problem. Mit denen vom type numpy.ndarray gibt es Probleme. So speicher ich die Daten:

fid=NetCDFFile(out_file,'w')
fid.createDimension('numLevel',60)
fid.createDimension('numProf',37081)
out1=fid.createVariable('CloudSat_dbz','d',('numLevel','numProf',))
out1.units='dBZ'
out1.assignValue(cs_DBZ)
fid.close()

Unmittelbar vor dem Speichern stehen in cs_DBZ floats und NaNs. In der erzeugten NetCDF Datei steht überall 'nan'.

Anfangs hatte ich Probleme überhaupt das 'numpy.ndarray' wegzuschreiben, erst als ich den type von 'f' auf 'd' geändert habe ging es. Aber eben nur mit nans überall. 1-dimensionale arrays vom type 'array' werden korrekt weggeschrieben. Google hat mir bisher auch nicht weiter geholfen. Weiß jemand von euch Rat? Folgende packages binde ich ein:

import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from Scientific.IO.NetCDF import *

Bin für jeglichen Hinweis dankbar!
sophy
BlackJack

@sophy: Wie sahen denn die Probleme beim Typ 'f' aus?
sophy
User
Beiträge: 10
Registriert: Dienstag 12. Januar 2010, 10:34

Hallo!

mit type 'f' kommt folgende Fehlermeldung:

Traceback (most recent call last):
File "./gme_cs_pdf_z_height.py", line 374, in <module>
out1.assignValue(cs_DBZ)
TypeError: Array can not be safely cast to required type

'd' ist meine ich auch richtig, wenn ich den type eines Eintrages ausgeben lasse, so kommt <type 'numpy.float64'>.

Ich habe sämtliche NaNs durch eine andere Zahl ersetzt, daraufhin stand in der Ausgabedatei überall diese Zahl. Ich denke der erste Wert des arrays wird einfach überall hingeschrieben.

Benutze ich nicht assignValue sondern schreibe einfach out1=cs_DBZ so sind sämtliche Eintraege in der NetCDF Datei leer.

sophy
sophy
User
Beiträge: 10
Registriert: Dienstag 12. Januar 2010, 10:34

ok ok ok, ich nehme die Frage zurück. Ein test numpy.ndarray bekomme ich in NetCDF abgespeichert, der Syntax stimmt also. Nur mein spezielles array tuts nicht, irgendwas ist da faul.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mach doch mal einen Minimalbeispiel für den Test- und den Anwendungsfall. Wenn Du dann das Problem nicht erkennst, kannst Du die Codeschnipsel hier posten (Code-Tags bitte verwenden) oder bei längeren Schnipsel in ein pastebin.
Vielleicht kommen wir ja so drauf.

HTH
Christian
Antworten