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
numpy.ndarray netcdf
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
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
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
Vielleicht kommen wir ja so drauf.
HTH
Christian