Hinweise zur Arbeit mit NetCDF
ChangeLog --2018 / 07/04 Es wurde hinzugefügt, wie fehlende Werte angegeben werden --2015 / 09/04 Reflexion des Kommentarinhalts, Hinzufügung der Schreibmethode
NetCDF kann vom netCDF4-Modul gelesen werden. Herunterladen und installieren von Github-Seite oder Es wird standardmäßig mit Anaconda für Mac und Python (x, y) für Windows geliefert.
import netCDF4
nc = netCDF4.Dataset('filename.nc', 'r')
dim = len(nc.dimensions['dimname'])
var = nc.variables['varname'][:]
nc.close()
import netCDF4
from numpy import dtype
#Erstellen Sie ein Objekt und legen Sie die Anzahl der Dimensionen fest.
nc = netCDF4.Dataset('filename.nc', 'w', format='NETCDF3_CLASSIC')
nc.createDimension('ntime', len(time_out)) # e.g. time_out = [0, 1, ...]
# nc.createDimensions('ntime', None) #Bei Einstellung auf unbegrenzt
nc.createDimension('xi', x) # e.g. x = 10
nc.createDimension('eta', y) # e.g. y = 10
#Definieren Sie danach jede Variable.
#Das folgende Beispiel definiert Zeit-, Breiten-, Längen- und dreidimensionale Variablen.
time = nc.createVariable('time', dtype('int32').char, ('ntime',))
time.long_name = 'time of test variable'
time.units = 'days since 1968-05-23 00:00:00'
lon = nc.createVariable('lon', dtype('double').char, ('eta', 'xi'))
lon.long_name = 'east longitude'
lon.units = 'degree of east longitude'
lat = nc.createVariable('lat', dtype('double').char, ('eta', 'xi'))
lat.long_name = 'north latitude'
lat.units = 'degree of north latitude'
var = nc.createVariable('varname', dtype('double').char, ('ntime', 'eta', 'xi'))
var.long_name = 'test variable'
var.units = 'unit of test variable'
#Zum Schluss np im Voraus.Ersetzen Sie den von ndarray usw. geschaffenen Wert.
time[:] = time_out
lon[:,:] = lon_out
lat[:,:] = lat_out
var[:,:,:] = var_out
nc.close()
Wenn Sie einen bestimmten Wert als fehlenden Wert behandeln möchten, können Sie beim Erstellen der Variablen "fill_value" festlegen.
# -Wenn 999 ein fehlender Wert ist
var = nc.createVariable('varname', dtype('double').char, ('ntime', 'eta', 'xi'), fill_value=-999)
(Hinzugefügt am 04.07.2018, Danke @yutabvb)
Recommended Posts