1.3.3.4.1. Les fichiers netcdfΒΆ
Voir le tutoriel sur le site de CDAT.
# Ouverture
import cdms2
from vacumm.config import data_sample
f = cdms2.open(data_sample('mars2d.xyt.nc'))
# Lister les variables
print f.variables.keys()
# -> ['bounds_lon', 'h0', 'v', 'xe', 'u', 'bounds_lat']
# Avoir des informations sur une variables sans la lire, via []
nt = f['xe'].shape[0]
print f['xe'].getTime().asComponentTime()[0:nt:nt-1]
# -> [2008-8-15 0:0:0.0, 2008-8-15 23:0:0.0]
# Lire une selection de la variable
import cdtime
xe = f('xe', ('2008-8-15',cdtime.comptime(2008,8,15,12), 'cc'),
lon=slice(5,6), lat=(48.1, 48.5), squeeze=1)
print xe.shape
# -> (13, 29)
# squeeze a supprime l'axes des longitudes de dim 1
# Fermer le fichier lu
f.close()
# Definir la compression netcdf4
cdms2.setNetcdfShuffleFlag(1)
cdms2.setNetcdfDeflateFlag(1)
cdms2.setNetcdfDeflateLevelFlag(3)
# Creer un nouveau fichier
ncfile = 'misc-io-netcdf.nc'
import os
if os.path.exists(ncfile): os.remove(ncfile)
f = cdms2.open('misc-io-netcdf.nc', 'w') # ouverture en ecriture
f.write(xe) # ecriture d'une variable
f.history = 'Created with '+__file__.encode('utf8') # attribut global
f.close() # fermeture