Exemplo n.º 1
0
print " \n" + "==> " + "  RUNNING FORCING CODE FROM *> RomsFields class <* ...\n" + " "

fields = RomsFields(args.imp)
sustr, svstr = eval("fields.%s()" % roms.smflux)
sms_time = fields.smstime

print len(sms_time)
################################################################################
## WRITING NETCDF GRID FILE
## Based on "sms_uvstress.cdl" NETCDF sample structure
################################################################################
print " \n" + "==> " + "  WRITING NETCDF Frc FILE ...\n" + " "

filetypestr = "ROMS Forcing file - %s" % args.imp

ncfile = netCDF4.Dataset(roms.fnames_dict()["frc"], mode="w", clobber="true", format="NETCDF3_CLASSIC")

# creating GLOBAL ATTRIBUTES
setattr(ncfile, "title", roms.name)
setattr(ncfile, "date", str(dt.datetime.now()))
setattr(ncfile, "type", filetypestr)
setattr(ncfile, "grdfile", args.imp + "_grd.nc")

# creating DIMENSIONS
ncfile.createDimension("xi_u", size=sustr.shape[2])
ncfile.createDimension("eta_u", size=sustr.shape[1])
ncfile.createDimension("xi_v", size=svstr.shape[2])
ncfile.createDimension("eta_v", size=svstr.shape[1])
ncfile.createDimension("sms_time", size=len(sms_time))
ncfile.createDimension("time", size=1)
Exemplo n.º 2
0
nud3d = nud2d.reshape(1, nud2d.shape[0], nud2d.shape[1]).repeat(roms.N, axis=0)

####################################################################
##  WRITING NETCDF GRID FILE
####################################################################
print ' \n' + '==> ' + '  WRITING NETCDF GRID FILE ...\n' + ' '

filetypestr = 'ROMS Grid file - %s [%s]' %(args.imp, roms.grid)

today = dt.date.today()
Lp = L + 1
Mp = M + 1

spherical = 'T'

ncfile = nc.Dataset( roms.fnames_dict()['grd'], 
    mode='w', clobber='true', format='NETCDF3_CLASSIC')

# creating GLOBAL ATTRIBUTES
setattr(ncfile, 'title', roms.name)
setattr(ncfile, 'date', str(today))
setattr(ncfile, 'type', filetypestr)

# creating DIMENSIONS
ncfile.createDimension('xi_u', size=L)
ncfile.createDimension('eta_u', size=Mp)
ncfile.createDimension('xi_v', size=Lp)
ncfile.createDimension('eta_v', size=M)
ncfile.createDimension('xi_rho', size=Lp)
ncfile.createDimension('eta_rho', size=Mp)
ncfile.createDimension('xi_psi', size=L)
Exemplo n.º 3
0
lev      =  np.arange(1, lN+1, 1)
sc       =  -1 + (lev-0.5)*ds
Ptheta   =  np.sinh(theta_s*sc) / np.sinh(theta_s)
Rtheta   =  np.tanh( theta_s*(sc+0.5) ) / ( 2* np.tanh(0.5*theta_s) ) - 0.5
Cs       =  (1-theta_b)*Ptheta + theta_b * Rtheta
scw      =  np.arange(-1, 0+ds, ds)
Pthetaw  =  np.sinh( theta_s*scw ) / np.sinh(theta_s)
Rthetaw  =  np.tanh( theta_s*(scw+0.5) ) / (2*np.tanh(0.5*theta_s)) - 0.5
Csw      =  (1-theta_b)*Pthetaw + theta_b*Rthetaw


print ' \n' + '==> ' + '  WRITING NETCDF INITIAL CONDITIONS FILE ...\n' + ' '

filetypestr = 'ROMS Initial Conditions file - %s [%s]' %(args.imp, roms.ts_field)

ncfile = netCDF4.Dataset(roms.fnames_dict()['ini'],
    mode='w', clobber='true', format='NETCDF3_CLASSIC')

# creating DIMENSIONS
ncfile.createDimension('xi_rho', size=Lp)
ncfile.createDimension('xi_u', size=L)
ncfile.createDimension('xi_v', size=Lp)
ncfile.createDimension('eta_rho', size=Mp)
ncfile.createDimension('eta_u', size=Mp)
ncfile.createDimension('eta_v', size=M)
ncfile.createDimension('s_rho', size=roms.N)
ncfile.createDimension('s_w', size=Np)
ncfile.createDimension('tracer', size=2)
ncfile.createDimension('time', size=1)
ncfile.createDimension('one', size=1)