robb,
i am trying to use 'gribtonc' to convert the ruc2 native 40km model
from the oso server to netcdf. fsl gave me a cdl file they use for
this model. i dont know why this is so difficult. i am not sure
that they us the gribtonc program to accomplish their convertion, but
this cdl convention should work with this model. right? here is my
command line stuff:
cyclone[bennett]291>ncgen -o ruc2.nc ruc2.cdl
cyclone[bennett]292>gribtonc -l log -v ruc2.nc < ruc2.T12Z.bgrbanl
cyclone[bennett]293>more log
Aug 24 20:15:54 gribtonc[19142]: Starting Up
Aug 24 20:15:54 gribtonc[19142]: Error parsing units: Pascals / second
Aug 24 20:15:54 gribtonc[19142]: ruc2.nc: can't get units attribute for
variable w
Aug 24 20:15:54 gribtonc[19142]: GRIB units `degK' not conformable with
variable Tv:units
Aug 24 20:15:54 gribtonc[19142]: Error parsing units: WMO centers table
Aug 24 20:15:54 gribtonc[19142]: ruc2.nc: can't get units attribute for
variable center_id
Aug 24 20:15:54 gribtonc[19142]: ruc2.nc: no datetimeid variable
Aug 24 20:15:54 gribtonc[19142]: make_ncfile failed
Aug 24 20:15:54 gribtonc[19142]: can't create output netCDF file ruc2.nc,
exiting
Aug 24 20:15:54 gribtonc[19142]: Exiting
Aug 24 20:15:54 gribtonc[19142]: 0 WMO msgs, 0 GRIBs decoded, 0 written
i added the datetime variable but that didn't matter. the center_id is
actually in
the cdl file so that doesn't make sense to me. the error about Tv:units is also
a mystery. Tv is tropopause v-winds which has units m/s so where does 'degK'
come from?
your help here would be great if you have the time. thanks...
dave bennett
================================== CDL FILE ==================================
netcdf ruc2_40km_hybridb.cdl
{
dimensions:
record = unlimited;
namelen = 132;
nav = 1;
x = 151;
y = 113;
z = 40;
variables:
// Geopotential Height
float
hgt(record, z, y, x) ;
hgt:long_name = "geopotential height" ;
hgt:units = "gp m" ;
hgt:z = "isoLevel";
hgt:record = "reftime, valtime" ;
hgt:valid_range = -1000.f, 50000.f ;
hgt:_FillValue = -9999.f ;
hgt:navigation_var = "nav";
// u wind component
float
u(record, z, y, x);
u:navigation_dim = "nav";
u:z_dim = "vpt, p";
u:record = "valtime, reftime";
u:long_name = "u-component of wind";
u:units = "meters / second";
u:valid_range = -200.f, 200.f;
u:_FillValue = -99999.f;
// v wind component
float
v(record, z, y, x);
v:navigation_dim = "nav";
v:z_dim = "vpt, p";
v:record = "valtime, reftime";
v:long_name = "v-component of wind";
v:units = "meters / second";
v:valid_range = -200.f, 200.f;
v:_FillValue = -99999.f;
// montgomery stream function
float
msg(record, z, y, x);
msg:navigation_dim = "nav";
msg:z_dim = "vpt, p";
msg:record = "valtime, reftime";
msg:long_name = "montgomery stream function / gravity";
msg:units = "meters";
msg:valid_range = 20000.f, 50000.f;
msg:_FillValue = -99999.f;
// atmospheric pressure
float
p(record, z, y, x);
p:navigation_dim = "nav";
p:z_dim = "vpt";
p:record = "valtime, reftime";
p:long_name = "pressure";
p:units = "pascals";
p:valid_range = 0.f, 110000.f;
p:_FillValue = -99999.f;
// virtual potential temperature
float
vpt(record, z, y, x);
vpt:navigation_dim = "nav";
vpt:z_dim = "p";
vpt:record = "valtime, reftime";
vpt:long_name = "virtual potential temperature";
vpt:units = "degrees kelvin";
vpt:valid_range = 0.f, 600.f;
vpt:_FillValue = -99999.f;
// water vapor mixing ratio
float
qv(record, z, y, x);
qv:navigation_dim = "nav";
qv:z_dim = "vpt, p";
qv:record = "valtime, reftime";
qv:long_name = "water vapor mixing ratio";
qv:units = "kg / kg";
qv:valid_range = 0.f, 100.f;
qv:_FillValue = -99999.f;
// cloud water mixing ratio
float
qc(record, z, y, x);
qc:navigation_dim = "nav";
qc:z_dim = "vpt, p";
qc:record = "valtime, reftime";
qc:long_name = "cloud water mixing ratio";
qc:units = "kg / kg";
qc:valid_range = 0.f, 100.f;
qc:_FillValue = -99999.f;
// rain water mixing ratio
float
qr(record, z, y, x);
qr:navigation_dim = "nav";
qr:z_dim = "vpt, p";
qr:record = "valtime, reftime";
qr:long_name = "rain water mixing ratio";
qr:units = "kg / kg";
qr:valid_range = 0.f, 100.f;
qr:_FillValue = -99999.f;
// ice mixing ratio
float
qi(record, z, y, x);
qi:navigation_dim = "nav";
qi:z_dim = "vpt, p";
qi:record = "valtime, reftime";
qi:long_name = "ice mixing ratio";
qi:units = "kg / kg";
qi:valid_range = 0.f, 100.f;
qi:_FillValue = -99999.f;
// snow mixing ratio
float
qs(record, z, y, x);
qs:navigation_dim = "nav";
qs:z_dim = "vpt, p";
qs:record = "valtime, reftime";
qs:long_name = "snow mixing ratio";
qs:units = "kg / kg";
qs:valid_range = 0.f, 100.f;
qs:_FillValue = -99999.f;
// graupel mixing ratio
float
qg(record, z, y, x);
qg:navigation_dim = "nav";
qg:z_dim = "vpt, p";
qg:record = "valtime, reftime";
qg:long_name = "graupel mixing ratio";
qg:units = "kg / kg";
qg:valid_range = 0.f, 100.f;
qg:_FillValue = -99999.f;
// number concentration for ice particles
float
qin(record, z, y, x);
qin:navigation_dim = "nav";
qin:z_dim = "vpt, p";
qin:record = "valtime, reftime";
qin:long_name = "number concentration for ice particles";
qin:units = "1 / m**3";
qin:valid_range = 0.f, 100.f;
qin:_FillValue = -99999.f;
// turbulent kinetic energy
float
tke(record, z, y, x);
tke:navigation_dim = "nav";
tke:z_dim = "vpt, p";
tke:record = "valtime, reftime";
tke:long_name = "turbulent kinetic energy";
tke:units = "m**2 / s**2";
tke:valid_range = 0.f, 10000.f;
tke:_FillValue = -99999.f;
// vertical velocity
float
w(record, z, y, x);
w:navigation_dim = "nav";
w:z_dim = "vpt, p";
w:record = "valtime, reftime";
w:long_name = "vertical velocity";
w:units = "Pascals / second";
w:valid_range = -10000.f, 10000.f;
w:_FillValue = -99999.f;
// MAPS Mean Sea Level Pressure
float
MMSP(record, y, x);
MMSP:navigation_dim = "nav";
MMSP:record = "valtime, reftime";
MMSP:long_name = "MAPS mean sea level pressure";
MMSP:units = "pascals";
MMSP:valid_range = 80000.f, 110000.f;
MMSP:_FillValue = -99999.f;
// Soil Temperature at surface
float
ST(record, y, x);
ST:navigation_dim = "nav";
ST:record = "valtime, reftime";
ST:long_name = "soil temperature at surface";
ST:units = "degrees kelvin";
ST:valid_range = 150.f, 400.f;
ST:_FillValue = -99999.f;
// Snow Temperature - snow or soil top level
float
STsnow(record, y, x);
STsnow:navigation_dim = "nav";
STsnow:record = "valtime, reftime";
STsnow:long_name = "snow temperature - snow or top soil level";
STsnow:units = "degrees kelvin";
STsnow:valid_range = 150.f, 400.f;
STsnow:_FillValue = -99999.f;
// Soil Temperature at level 1 below surface
float
ST1(record, y, x);
ST1:navigation_dim = "nav";
ST1:record = "valtime, reftime";
ST1:long_name = "soil temperature at level 1 below surface";
ST1:units = "degrees kelvin";
ST1:valid_range = 150.f, 400.f;
ST1:_FillValue = -99999.f;
// Soil Temperature at level 2 below surface
float
ST2(record, y, x);
ST2:navigation_dim = "nav";
ST2:record = "valtime, reftime";
ST2:long_name = "soil temperature at level 2 below surface";
ST2:units = "degrees kelvin";
ST2:valid_range = 150.f, 400.f;
ST2:_FillValue = -99999.f;
// Soil Temperature at level 3 below surface
float
ST3(record, y, x);
ST3:navigation_dim = "nav";
ST3:record = "valtime, reftime";
ST3:long_name = "soil temperature at level 3 below surface";
ST3:units = "degrees kelvin";
ST3:valid_range = 150.f, 400.f;
ST3:_FillValue = -99999.f;
// Soil Temperature at level 4 below surface
float
ST4(record, y, x);
ST4:navigation_dim = "nav";
ST4:record = "valtime, reftime";
ST4:long_name = "soil temperature at level 4 below surface";
ST4:units = "degrees kelvin";
ST4:valid_range = 150.f, 400.f;
ST4:_FillValue = -99999.f;
// Soil Temperature at the bottom
float
ST5(record, y, x);
ST5:navigation_dim = "nav";
ST5:record = "valtime, reftime";
ST5:long_name = "soil temperature at the bottom";
ST5:units = "degrees kelvin";
ST5:valid_range = 150.f, 400.f;
ST5:_FillValue = -99999.f;
// Soil volumetric moisture content at surface
float
SM(record, y, x);
SM:navigation_dim = "nav";
SM:record = "valtime, reftime";
SM:long_name = "soil volumetric moisture content at surface";
SM:units = "m**3 / m**3";
SM:valid_range = 0.f, 1.f;
SM:_FillValue = -99999.f;
// Soil volumetric moisture content at level 1 below surface
float
SM1(record, y, x);
SM1:navigation_dim = "nav";
SM1:record = "valtime, reftime";
SM1:long_name = "soil volumetric moisture content at level 1";
SM1:units = "m**3 / m**3";
SM1:valid_range = 0.f, 1.f;
SM1:_FillValue = -99999.f;
// Soil volumetric moisture content at level 2 below surface
float
SM2(record, y, x);
SM2:navigation_dim = "nav";
SM2:record = "valtime, reftime";
SM2:long_name = "soil volumetric moisture content at level 2";
SM2:units = "m**3 / m**3";
SM2:valid_range = 0.f, 1.f;
SM2:_FillValue = -99999.f;
// Soil volumetric moisture content at level 3 below surface
float
SM3(record, y, x);
SM3:navigation_dim = "nav";
SM3:record = "valtime, reftime";
SM3:long_name = "soil volumetric moisture content at level 3";
SM3:units = "m**3 / m**3";
SM3:valid_range = 0.f, 1.f;
SM3:_FillValue = -99999.f;
// Soil volumetric moisture content at level 4 below surface
float
SM4(record, y, x);
SM4:navigation_dim = "nav";
SM4:record = "valtime, reftime";
SM4:long_name = "soil volumetric moisture content at level 4";
SM4:units = "m**3 / m**3";
SM4:valid_range = 0.f, 1.f;
SM4:_FillValue = -99999.f;
// Soil volumetric moisture content at the bottom
float
SM5(record, y, x);
SM5:navigation_dim = "nav";
SM5:record = "valtime, reftime";
SM5:long_name = "soil volumetric moisture content at the bottom";
SM5:units = "m**3 / m**3";
SM5:valid_range = 0.f, 1.f;
SM5:_FillValue = -99999.f;
// Sensible heat flux
float
SHF(record, y, x);
SHF:navigation_dim = "nav";
SHF:record = "valtime, reftime";
SHF:long_name = "sensible heat flux";
SHF:units = "W / m**2";
SHF:valid_range = -10000.f, 10000.f;
SHF:_FillValue = -99999.f;
// Latent heat flux
float
LHF(record, y, x);
LHF:navigation_dim = "nav";
LHF:record = "valtime, reftime";
LHF:long_name = "latent heat flux";
LHF:units = "W / m**2";
LHF:valid_range = -10000.f, 10000.f;
LHF:_FillValue = -99999.f;
// Direct evaporation from bare soil
float
EDIR(record, y, x);
EDIR:navigation_dim = "nav";
EDIR:record = "valtime, reftime";
EDIR:long_name = "direct evaporation from bare soil";
EDIR:units = "W / m**2";
EDIR:valid_range = -10000.f, 10000.f;
EDIR:_FillValue = -99999.f;
// Evaporation of canopy water
float
EC(record, y, x);
EC:navigation_dim = "nav";
EC:record = "valtime, reftime";
EC:long_name = "evaporation of canopy water";
EC:units = "W / m**2";
EC:valid_range = -10000.f, 10000.f;
EC:_FillValue = -99999.f;
// Canopy water
float
CANWAT(record, y, x);
CANWAT:navigation_dim = "nav";
CANWAT:record = "valtime, reftime";
CANWAT:long_name = "canopy water";
CANWAT:units = "m";
CANWAT:valid_range = 0.f, 1.f;
CANWAT:_FillValue = -99999.f;
// Evapotranspiration flux
float
ETT(record, y, x);
ETT:navigation_dim = "nav";
ETT:record = "valtime, reftime";
ETT:long_name = "evapotranspiration flux";
ETT:units = "W / m**2";
ETT:valid_range = -10000.f, 10000.f;
ETT:_FillValue = -99999.f;
// Water condensation rate near surface
float
DEW(record, y, x);
DEW:navigation_dim = "nav";
DEW:record = "valtime, reftime";
DEW:long_name = "water condensation rate near surface";
DEW:units = "m / s";
DEW:valid_range = -10000.f, 10000.f;
DEW:_FillValue = -99999.f;
// Rate of water dropping from canopy to ground
float
DRIP(record, y, x);
DRIP:navigation_dim = "nav";
DRIP:record = "valtime, reftime";
DRIP:long_name = "rate of water dropping from canopy to ground";
DRIP:units = "m / s";
DRIP:valid_range = -10000.f, 10000.f;
DRIP:_FillValue = -99999.f;
// Net Longwave Radiation at Surface
float
LWNR(record, y, x);
LWNR:navigation_dim = "nav";
LWNR:record = "valtime, reftime";
LWNR:long_name = "net longwave radiation at surface";
LWNR:units = "W / m**2";
LWNR:valid_range = -10000.f, 10000.f;
LWNR:_FillValue = -99999.f;
// Net Shortwave Radiation at Surface
float
SWNR(record, y, x);
SWNR:navigation_dim = "nav";
SWNR:record = "valtime, reftime";
SWNR:long_name = "net shortwave radiation at surface";
SWNR:units = "W / m**2";
SWNR:valid_range = -10000.f, 10000.f;
SWNR:_FillValue = -99999.f;
// precipitation rate
float
PR(record, y, x);
PR:navigation_dim = "nav";
PR:record = "valtime, reftime";
PR:long_name = "precipitation rate";
PR:units = "kg / m**2 / s";
PR:valid_range = 0.f, 0.1f;
PR:_FillValue = -99999.f;
// resolvable scale precipitation - 1 hour
float
LgSP1h(record, y, x);
LgSP1h:navigation_dim = "nav";
LgSP1h:record = "valtime, reftime";
LgSP1h:long_name = "resolvable scale precipitation - 1h";
LgSP1h:units = "kg / m**2";
LgSP1h:valid_range = 0.f, 1000.f;
LgSP1h:_FillValue = -99999.f;
// resolvable scale precipitation - 2 hour
float
LgSP2h(record, y, x);
LgSP2h:navigation_dim = "nav";
LgSP2h:record = "valtime, reftime";
LgSP2h:long_name = "resolvable scale precipitation - 2h";
LgSP2h:units = "kg / m**2";
LgSP2h:valid_range = 0.f, 1000.f;
LgSP2h:_FillValue = -99999.f;
// resolvable scale precipitation - 3 hour
float
LgSP3h(record, y, x);
LgSP3h:navigation_dim = "nav";
LgSP3h:record = "valtime, reftime";
LgSP3h:long_name = "resolvable scale precipitation - 3h";
LgSP3h:units = "kg / m**2";
LgSP3h:valid_range = 0.f, 1000.f;
LgSP3h:_FillValue = -99999.f;
// sub-grid scale precipitation - 1h
float
ConvP1h(record, y, x);
ConvP1h:navigation_dim = "nav";
ConvP1h:record = "valtime, reftime";
ConvP1h:long_name = "sub-grid scale precipitation - 1h";
ConvP1h:units = "kg / m**2";
ConvP1h:valid_range = 0.f, 1000.f;
ConvP1h:_FillValue = -99999.f;
// sub-grid scale precipitation - 2h
float
ConvP2h(record, y, x);
ConvP2h:navigation_dim = "nav";
ConvP2h:record = "valtime, reftime";
ConvP2h:long_name = "sub-grid scale precipitation - 2h";
ConvP2h:units = "kg / m**2";
ConvP2h:valid_range = 0.f, 1000.f;
ConvP2h:_FillValue = -99999.f;
// sub-grid scale precipitation - 3h
float
ConvP3h(record, y, x);
ConvP3h:navigation_dim = "nav";
ConvP3h:record = "valtime, reftime";
ConvP3h:long_name = "sub-grid scale precipitation - 3h";
ConvP3h:units = "kg / m**2";
ConvP3h:valid_range = 0.f, 1000.f;
ConvP3h:_FillValue = -99999.f;
// Water equivalent of snow depth - 1h
float
SnwAcc1h(record, y, x);
SnwAcc1h:navigation_dim = "nav";
SnwAcc1h:record = "valtime, reftime";
SnwAcc1h:long_name = "water equivalent of snow depth - 1h";
SnwAcc1h:units = "kg / m**2";
SnwAcc1h:valid_range = 0.f, 1000.f;
SnwAcc1h:_FillValue = -99999.f;
// Water equivalent of snow depth - 2h
float
SnwAcc2h(record, y, x);
SnwAcc2h:navigation_dim = "nav";
SnwAcc2h:record = "valtime, reftime";
SnwAcc2h:long_name = "water equivalent of snow depth - 2h";
SnwAcc2h:units = "kg / m**2";
SnwAcc2h:valid_range = 0.f, 1000.f;
SnwAcc2h:_FillValue = -99999.f;
// Water equivalent of snow depth - 3h
float
SnwAcc3h(record, y, x);
SnwAcc3h:navigation_dim = "nav";
SnwAcc3h:record = "valtime, reftime";
SnwAcc3h:long_name = "water equivalent of snow depth - 3h";
SnwAcc3h:units = "kg / m**2";
SnwAcc3h:valid_range = 0.f, 1000.f;
SnwAcc3h:_FillValue = -99999.f;
// snow accumulation since last output
float
SnwAcc(record, y, x);
SnwAcc:navigation_dim = "nav";
SnwAcc:record = "valtime, reftime";
SnwAcc:long_name = "snow accumulation";
SnwAcc:units = "centimeters";
SnwAcc:valid_range = 0.f, 1000.f;
SnwAcc:_FillValue = -99999.f;
// surface runoff since last output
float
Rnoff(record, y, x);
Rnoff:navigation_dim = "nav";
Rnoff:record = "valtime, reftime";
Rnoff:long_name = "surface runoff";
Rnoff:units = "kg / m**2";
Rnoff:valid_range = 0.f, 1000.f;
Rnoff:_FillValue = -99999.f;
// sub-surface runoff since last output
float
SubRnoff(record, y, x);
SubRnoff:navigation_dim = "nav";
SubRnoff:record = "valtime, reftime";
SubRnoff:long_name = "sub-surface runoff";
SubRnoff:units = "kg / m**2";
SubRnoff:valid_range = 0.f, 1000.f;
SubRnoff:_FillValue = -99999.f;
// precipitable water
float
PW(record, y, x);
PW:navigation_dim = "nav";
PW:record = "valtime, reftime";
PW:long_name = "precipitable water";
PW:units = "kg / m**2";
PW:valid_range = 0.f, 100.f;
PW:_FillValue = -99999.f;
// atmospheric pressure at tropopause
float
Tp(record, y, x);
Tp:navigation_dim = "nav";
Tp:record = "valtime, reftime";
Tp:long_name = "pressure at tropopause";
Tp:units = "pascals";
Tp:valid_range = 0.f, 110000.f;
Tp:_FillValue = -99999.f;
// potential temperature at tropopause
float
Tpot(record, y, x);
Tpot:navigation_dim = "nav";
Tpot:record = "valtime, reftime";
Tpot:long_name = "potential temperature at tropopause";
Tpot:units = "degrees kelvin";
Tpot:valid_range = 200.f, 500.f;
Tpot:_FillValue = -99999.f;
// u wind component at tropopause
float
Tu(record, y, x);
Tu:navigation_dim = "nav";
Tu:record = "valtime, reftime";
Tu:long_name = "u-component of wind at tropopause";
Tu:units = "meters / second";
Tu:valid_range = -200.f, 200.f;
Tu:_FillValue = -99999.f;
// v wind component at tropopause
float
Tv(record, y, x);
Tv:navigation_dim = "nav";
Tv:record = "valtime, reftime";
Tv:long_name = "v-component of wind at tropopause";
Tv:units = "meters / second";
Tv:valid_range = -200.f, 200.f;
Tv:_FillValue = -99999.f;
// convective available potential energy - max parcel
float
CAPE(record, y, x);
CAPE:navigation_dim = "nav";
CAPE:record = "valtime, reftime";
CAPE:long_name = "convective available potential energy";
CAPE:units = "J / kg";
CAPE:valid_range = 0.f, 20000.f;
CAPE:_FillValue = -99999.f;
// convective inhibition for max parcel
float
CIn(record, y, x);
CIn:navigation_dim = "nav";
CIn:record = "valtime, reftime";
CIn:long_name = "convective inhibition";
CIn:units = "J / kg";
CIn:valid_range = 0.f, 20000.f;
CIn:_FillValue = -99999.f;
// storm-relative helicity
float
Helic(record, y, x);
Helic:navigation_dim = "nav";
Helic:record = "valtime, reftime";
Helic:long_name = "storm-relative helicity";
Helic:units = "m**2/s**2";
Helic:valid_range = 0.f, 20000.f;
Helic:_FillValue = -99999.f;
// snow depth
float
SnD(record, y, x);
SnD:navigation_dim = "nav";
SnD:record = "valtime, reftime";
SnD:long_name = "snow depth";
SnD:units = "meters";
SnD:valid_range = 0.f, 20000.f;
SnD:_FillValue = -99999.f;
double
valtime(record);
valtime:long_name = "valid time";
valtime:units = "seconds since (1970-1-1 00:00:00.0)";
// reference time of the process
double
reftime(record);
reftime:long_name = "reference time";
reftime:units = "seconds since (1970-1-1 00:00:00.0)";
// nice name for originating center
char
origin_name(namelen);
origin_name:long_name = " ";
// nice name for process
char
process_name(namelen);
process_name:long_name = " ";
// nice name for grid description instance
char
grid_name(namelen);
grid_name:long_name = " ";
// basic assumption about earth shape
char
earth_shape(namelen);
earth_shape:long_name = " ";
// navigation variables using
// WMO FM 92-VIII Ext.GRIB specification names
char grid_type(nav, namelen);
grid_type:long_name = "GRIB-1 grid type";
char x_dim(nav, namelen);
x_dim:long_name = "longitude dimension";
char y_dim(nav, namelen);
y_dim:long_name = "latitude dimension";
short Nx(nav);
Nx:long_name = "number of x points";
short Ny(nav);
Ny:long_name = "number of y points";
short Nz(nav);
Nz:long_name = "number of z points";
float La1(nav);
La1:long_name = "first latitude";
La1:units = "degrees_north";
float Lo1(nav);
Lo1:long_name = "first longitude";
Lo1:units = "degrees_east" ;
float Lov(nav);
Lov:long_name = "orientation of grid" ;
Lov:units = "degrees_east";
float Latin(nav);
Latin:long_name = "conic tangent latitude" ;
Latin:units = "degrees_north";
float Dx(nav);
Dx:long_name = "x grid increment";
Dx:units = "kilometers";
float Dy(nav);
Dy:long_name = "y grid increment";
Dy:units = "kilometers";
// end of navigation variables
long center_id;
center_id:long_name = "center ID";
center_id:units = "WMO centers table";
long process_id;
process_id:long_name = "process ID";
process_id:units = "(allocated by center)";
:Conventions = "NUWG";
:history = "created by FSL Data Systems from the RUC2 Model Grids";
:record = "valtime, reftime";
:title = "Hybrid-B 40km Rapid Update Cycle";
:version = 1.0;
//----------------------------------------------------------------------
// overhead information used to query the NIMBUS data pool for data
// this is specific to FSL data management systems
//----------------------------------------------------------------------
:query = "GDAM.NMC.RUC2.RUC240kmHyB.*";
:age = 10800;
data:
Dx = 40.63525;
Dy = 40.63525;
La1 = 16.2810;
Lo1 = 126.1378;
Lov = 265.0;
Latin = 25.0;
Nx = 151;
Ny = 113;
Nz = 40;
center_id = 7; // NMC
earth_shape = "oblate spheroid";
grid_name = "FSL Conus 40km";
grid_type = "lambert conformal";
process_id = 105; // RUC2 40km
process_name = "RUC2 40km Hybrid-b 3-d/2-d Grids";
origin_name = "National Weather Service";
x_dim = "x";
y_dim = "y";
}