pythonのクラスの作成とクラスの継承の例。
クラスの作成
class nc4():
def __init__(self):
self.idata={}
self.odata={}
def show(self,fname):
fi0=netCDF4.Dataset(fname,"r")
for x in fi0.variables.keys():
vname=x
try:
vunits=fi0.variables[x].units
except:
vunits="N/A"
print("{0:<20} {1:<20}".format(vname,vunits))
def read(self,fname,vlist):
fi0=netCDF4.Dataset(fname,"r")
for v in vlist:
self.idata[v]=fi0.variables[v][:]
クラスの継承
class sflux(nc4):
def write(self,fname,vlist,udic):
fo0=netCDF4.Dataset(fname,"w")
nt,ny,nx,=self.odata[vlist[0]].shape
fo0.createDimension("time",nt)
fo0.createDimension("lat",ny)
fo0.createDimension("lon",nx)
fo0.notes="Monthly mean DFe flux at the ocean surface, based on Luo et al. (2008)."
var0=fo0.createVariable("time","f4",("time"))
var0.units="days"
var0[:]=self.idata["ocean_time"][:]
for v in vlist:
var0=fo0.createVariable(v,"f4",("time","lat","lon"),fill_value=np.nan)
var0.units=udic[v]
var0[:]=self.odata[v][:]
fo0.close()