[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: grid_number in netCDF file
- Subject: Re: grid_number in netCDF file
- Date: Mon, 5 Apr 1999 12:43:14 -0600 (MDT)
On Mon, 5 Apr 1999, Tom Whittaker wrote:
> Hi Robb:
>
> Don suggested I send this along to you.
>
> He had kindly sent me a netCDF file with ruc2 data in it so I
> could test an application I'm writing. When I opened the file,
> my code failed when trying to reference the "grid_number". What
> I found was the file defined:
>
> int grid_number(nav, ngrids) ;
> grid_number:long_name = "GRIB-1 catalogued grid numbers" ;
> grid_number:_FillValue = -9999 ;
>
> where "ngrids" dimension is two. What's strange is that 'ngrids'
> doesn't seem to appear anywhere else in the CDL.
Tom,
ngrids is a dimension only, the grid_number should be at the bottom of the
cdl file:
grid_number = 236, 255 ;
I attached ruc2.cdl in case your copy was somehow corrupted. I used
ncdump on a ruc2.nc file today and located grid_number ok, maybe the file
Don sent was corrupted. This happens once in a while when there is no
disk space to write the ruc2.nc file. These files are large:
48478444 Apr 5 12:42 99040518_ruc2.nc
Robb...
>
> I wondered what the story was with this, and what I needed to be
> prepared for in my application...it almost looks like two
> different grid formats/types might appear in one netCDF file? Or
> am I missing something else?
>
> Words of wisdom appreciated...thanks...
>
> tom
>
> --
> Tom Whittaker (address@hidden)
> University of Wisconsin-Madison
> Space Science and Engineering Center
> Phone/VoiceMail: 608/262-2759
> Fax: 608/263-6738
>
===============================================================================
Robb Kambic Unidata Program Center
Software Engineer III Univ. Corp for Atmospheric Research
address@hidden WWW: http://www.unidata.ucar.edu/
===============================================================================
netcdf ruc2 { // RUC/MAPS model on Lambert conformal CONUS grid
// (isentropic; scale: 40km at 40N)
dimensions:
record = UNLIMITED ; // (reference time, forecast time)
level = 40 ; // isobaric levels
hybridlevel = 40 ; // hybrid levels
soillevel = 5 ; // soil levels in centimeters
soil_lpdg = 4 ; // soil boundary layer levels
lpdg = 6 ; // boundary layer levels
fhg = 2 ; // fixed height above ground levels
x = 151 ;
y = 113 ;
datetime_len = 21 ; // string length for datetime strings
accum = 2 ; // time range for accumulations
nav = 1 ; // For navigation. Variables that use
// this dimension define a mapping between
// (x,y) indices and (lat, lon) coords.
nav_len = 100 ; // max length for navigation character strings
ngrids = 2; // number of grids
variables:
:record = "reftime, valtime" ; // "dimension attribute" -- means
// (reftime, valtime) uniquely
// determines record
char datetime(record, datetime_len) ; // derived from reftime
datetime:long_name = "reference date and time" ;
// units YYYY-MM-DD hh:mm:ssZ (ISO 8601)
float valtime_offset(record) ; // derived as valtime-reftime
valtime_offset:long_name = "hours from reference time" ;
valtime_offset:units = "hours" ;
double reftime(record) ; // reference time of the model
reftime:long_name = "reference time" ;
reftime:units = "hours since 1992-1-1" ;
double valtime(record) ; // forecast time ("valid" time)
valtime:long_name = "valid time" ;
valtime:units = "hours since 1992-1-1" ;
float level(level) ;
level:long_name = "level" ;
level:units = "hectopascals" ;
float hybridlevel(hybridlevel) ;
hybridlevel:long_name = "Hybrid level" ;
float soillevel(soillevel) ;
soillevel:long_name = "Soil level" ;
:soil_lpdg = "soil_lpdg_bot, soil_lpdg_top" ;
// (soil_lpdg_bot, soil_lpdg_top) uniquely determines soil_lpdg
float soil_lpdg_bot(soil_lpdg) ;
soil_lpdg_bot:long_name = "bottom level of boundary layer
between 2 levels from ground to levels" ;
//soil_lpdg_bot:units = "centimeters" ;
float soil_lpdg_top(soil_lpdg) ;
soil_lpdg_top:long_name = "top level of boundary layer between
2 levels from ground to levels" ;
//soil_lpdg_top:units = "centimeters" ;
:lpdg = "lpdg_bot, lpdg_top" ; // (lpdg_bot, lpdg_top) uniquely
// determines lpdg
float lpdg_bot(lpdg) ;
lpdg_bot:long_name = "bottom level of boundary layer between 2
levels at specified pressure differences from ground to levels" ;
lpdg_bot:units = "hectopascals" ;
float lpdg_top(lpdg) ;
lpdg_top:long_name = "top level of boundary layer between 2
levels at specified pressure differences from ground to levels" ;
lpdg_top:units = "hectopascals" ;
// fixed height above ground
float fhg(fhg) ; // fixed height above ground
fhg:long_name = "fixed height above ground" ;
fhg:units = "meters" ;
long model_id ;
model_id:long_name = "generating process ID number" ;
// navigation variables all use nav dimension
char nav_model(nav, nav_len) ; // navigation parameterization
nav_model:long_name = "navigation model name" ;
long grid_type_code(nav) ;
grid_type_code:long_name = "GRIB-1 GDS data representation
type" ;
char grid_type(nav, nav_len) ;
grid_type:long_name = "GRIB-1 grid type" ;
char grid_name(nav, nav_len) ;
grid_name:long_name = "grid name" ;
long grid_center(nav) ;
grid_center:long_name = "GRIB-1 originating center ID" ;
int grid_number(nav, ngrids) ;
grid_number:long_name = "GRIB-1 catalogued grid numbers" ;
grid_number:_FillValue = -9999 ;
char x_dim(nav, nav_len) ;
x_dim:long_name = "x dimension name" ;
char y_dim(nav, nav_len) ;
y_dim:long_name = "y dimension name" ;
long Nx(nav) ;
Nx:long_name = "number of points along x-axis" ;
long Ny(nav) ;
Ny:long_name = "number of points along y-axis" ;
float La1(nav) ;
La1:long_name = "latitude of first grid point" ;
La1:units = "degrees_north" ;
float Lo1(nav) ;
Lo1:long_name = "longitude of first grid point" ;
Lo1:units = "degrees_east" ;
byte ResCompFlag(nav) ;
ResCompFlag:long_name = "resolution and component flags" ;
float Lov(nav) ;
Lov:long_name = "orientation of the grid" ;
Lov:units = "degrees_east" ;
float Dx(nav) ;
Dx:long_name = "x-direction grid length" ;
Dx:units = "km" ;
float Dy(nav) ;
Dy:long_name = "y-direction grid length" ;
Dy:units = "km" ;
byte ProjFlag(nav) ;
ProjFlag:long_name = "projection center flag" ;
float Latin1(nav) ;
Latin1:long_name = "first intersecting latitude" ;
Latin1:units = "degrees_north" ;
float Latin2(nav) ;
Latin2:long_name = "second intersecting latitude" ;
Latin2:units = "degrees_north" ;
float SpLat(nav) ;
SpLat:long_name = "Latitude of the southern pole" ;
SpLat:units = "degrees_north" ;
float SpLon(nav) ;
SpLon:long_name = "Longitude of the southern pole" ;
SpLon:units = "degrees_east" ;
// end of navigation variables
// global attributes:
:history = "created by gribtonc from HDS broadcast" ;
:title = "RUC/MAPS model, from Forecast Systems Lab" ;
:Conventions = "NUWG" ;
:version = 0.0 ; // still just a draft
// ruc2 hybrid vars
// turbulent kinetic energy
float tke_hybr(record, hybridlevel, y, x) ;
tke_hybr:long_name = "turbulent kinetic energy" ;
tke_hybr:units = "J/kg" ;
tke_hybr:_FillValue = -9999.f ;
tke_hybr:navigation = "nav" ;
// atmospheric pressure
float P_hybr(record, hybridlevel, y, x) ;
P_hybr:long_name = "Presure" ;
P_hybr:units = "Pa" ;
P_hybr:_FillValue = -9999.f ;
P_hybr:navigation = "nav" ;
// geopotential height
float Z_hybr(record, hybridlevel, y, x) ;
Z_hybr:long_name = "Geopotential Height" ;
Z_hybr:units = "gp m" ;
Z_hybr:_FillValue = -9999.f ;
Z_hybr:navigation = "nav" ;
// virtual potential temperature
float vptmp_hybr(record, hybridlevel, y, x) ;
vptmp_hybr:long_name = "Virtual potential temperature" ;
vptmp_hybr:units = "K" ;
vptmp_hybr:_FillValue = -9999.f ;
vptmp_hybr:navigation = "nav" ;
// turbulence SIGMET/AIRMET
float reserved_hybr(record, hybridlevel, y, x) ;
reserved_hybr:long_name = "Turbulence SIGMET/AIRMET" ;
reserved_hybr:_FillValue = -9999.f ;
reserved_hybr:navigation = "nav" ;
// u-componet of wind
float u_hybr(record, hybridlevel, y, x) ;
u_hybr:long_name = "u-componet of wind" ;
u_hybr:units = "m/s" ;
u_hybr:_FillValue = -9999.f ;
u_hybr:navigation = "nav" ;
// v-componet of wind
float v_hybr(record, hybridlevel, y, x) ;
v_hybr:long_name = "v-componet of wind" ;
v_hybr:units = "m/s" ;
v_hybr:_FillValue = -9999.f ;
v_hybr:navigation = "nav" ;
// Vertical velocity (presure)
float omega_hybr(record, hybridlevel, y, x) ;
omega_hybr:long_name = "Vertical velocity (presure)" ;
omega_hybr:units = "Pa/s" ;
omega_hybr:_FillValue = -9999.f ;
omega_hybr:navigation = "nav" ;
// Cloud water
float clwmr_hybr(record, hybridlevel, y, x) ;
clwmr_hybr:long_name = "Cloud water" ;
clwmr_hybr:units = "kg / kg" ;
clwmr_hybr:_FillValue = -9999.f ;
clwmr_hybr:navigation = "nav" ;
// Soil temperature
float T_soil(record, y, x) ;
T_soil:long_name = "Soil temperature" ;
T_soil:units = "K" ;
T_soil:_FillValue = -9999.f ;
T_soil:navigation = "nav" ;
// Sensible heat net flux
float sen_ht_sfc(record, y, x) ;
sen_ht_sfc:long_name = "Sensible heat net flux" ;
sen_ht_sfc:units = "W / m2" ;
sen_ht_sfc:_FillValue = -9999.f ;
sen_ht_sfc:navigation = "nav" ;
// Latent heat net flux
float lat_ht_sfc(record, y, x) ;
lat_ht_sfc:long_name = "Latent heat net flux" ;
lat_ht_sfc:units = "W / m2" ;
lat_ht_sfc:_FillValue = -9999.f ;
lat_ht_sfc:navigation = "nav" ;
// Net long wave radiation (surface)
float rdn_lwsrf_sfc(record, y, x) ;
rdn_lwsrf_sfc:long_name = "Net long wave radiation (surface)" ;
rdn_lwsrf_sfc:units = "W / m2" ;
rdn_lwsrf_sfc:_FillValue = -9999.f ;
rdn_lwsrf_sfc:navigation = "nav" ;
// Soil moisture content
float soil_mst(record, y, x) ;
soil_mst:long_name = "Soil moisture content" ;
soil_mst:units = "kg / m2" ;
soil_mst:_FillValue = -9999.f ;
soil_mst:navigation = "nav" ;
// Soil type
float reserved_sfc(record, y, x) ;
reserved_sfc:long_name = "Soil type" ;
reserved_sfc:_FillValue = -9999.f ;
reserved_sfc:navigation = "nav" ;
// Net short wave radiation (surface)
float rdn_swsrf_sfc(record, y, x) ;
rdn_swsrf_sfc:long_name = "Net short wave radiation (surface)" ;
rdn_swsrf_sfc:units = "W / m2" ;
rdn_swsrf_sfc:_FillValue = -9999.f ;
rdn_swsrf_sfc:navigation = "nav" ;
// Soil temperature
float T_soil_bls(record, soillevel, y, x) ;
T_soil_bls:long_name = "Soil temperature" ;
T_soil_bls:units = "K" ;
T_soil_bls:_FillValue = -9999.f ;
T_soil_bls:navigation = "nav" ;
// Soil moisture content
float soil_mst_bls(record, soillevel, y, x) ;
soil_mst_bls:long_name = "Soil moisture content" ;
soil_mst_bls:units = "kg / m2" ;
soil_mst_bls:_FillValue = -9999.f ;
soil_mst_bls:navigation = "nav" ;
// Number concentration for ice particles
float reserved_bls(record, soillevel, y, x) ;
reserved_bls:long_name = "Number concentration for ice
particles" ;
reserved_bls:_FillValue = -9999.f ;
reserved_bls:navigation = "nav" ;
// Plant canopy surface water
float c_wat(record, y, x) ;
c_wat:long_name = "Plant canopy surface water" ;
c_wat:units = "kg / m2" ;
c_wat:_FillValue = -9999.f ;
c_wat:navigation = "nav" ;
// Snow temperature
float sno_t_lpdg(record, soil_lpdg, y, x) ;
sno_t_lpdg:long_name = "Snow temperature" ;
sno_t_lpdg:units = "K" ;
sno_t_lpdg:_FillValue = -9999.f ;
sno_t_lpdg:navigation = "nav" ;
// Water equivalent of accumulated snow depth
float snow_wat(record, y, x) ;
snow_wat:long_name = "Water equiv. of accumulated snow depth" ;
snow_wat:units = "kg / m2" ;
snow_wat:_FillValue = -9999.f ;
snow_wat:navigation = "nav" ;
// ruc2 pressure vars
float Z(record, level, y, x) ;
Z:long_name = "geopotential height" ;
Z:units = "gp m" ;
Z:_FillValue = -9999.f ;
Z:navigation = "nav" ;
float T(record, level, y, x) ;
T:long_name = "temperature" ;
T:units = "degK" ;
T:_FillValue = -9999.f ;
T:navigation = "nav" ;
float RH(record, level, y, x) ;
RH:long_name = "relative humidity" ;
RH:units = "percent" ;
RH:_FillValue = -9999.f ;
RH:navigation = "nav" ;
float u(record, level, y, x) ;
u:long_name = "u-component of wind" ;
u:units = "meters/second" ;
u:_FillValue = -9999.f ;
u:navigation = "nav" ;
float v(record, level, y, x) ;
v:long_name = "v-component of wind" ;
v:units = "meters/second" ;
v:_FillValue = -9999.f ;
v:navigation = "nav" ;
// Vertical velocity (presure)
float omega(record, level, y, x) ;
omega:long_name = "Vertical velocity (presure)" ;
omega:units = "Pa/s" ;
omega:_FillValue = -9999.f ;
omega:navigation = "nav" ;
float Psl_sa_sfc(record, y, x) ;
Psl_sa_sfc:long_name = "pressure at mean sea level (STD
reduction)" ;
Psl_sa_sfc:units = "Pa" ;
Psl_sa_sfc:_FillValue = -9999.f ;
Psl_sa_sfc:navigation = "nav" ;
float P_frzlvl(record, y, x) ;
P_frzlvl:long_name = "pressure at 0 isotherm" ;
P_frzlvl:units = "Pa" ;
P_frzlvl:_FillValue = -9999.f ;
P_frzlvl:navigation = "nav" ;
float Z_frzlvl(record, y, x) ;
Z_frzlvl:long_name = "geopotential height at 0 isotherm" ;
Z_frzlvl:units = "gp m" ;
Z_frzlvl:_FillValue = -9999.f ;
Z_frzlvl:navigation = "nav" ;
float RH_frzlvl(record, y, x) ;
RH_frzlvl:long_name = "relative humidity at 0 degree isotherm" ;
RH_frzlvl:units = "percent" ;
RH_frzlvl:_FillValue = -9999.f ;
RH_frzlvl:navigation = "nav" ;
float P_trop(record, y, x) ;
P_trop:long_name = "pressure at tropopause" ;
P_trop:units = "Pa" ;
P_trop:_FillValue = -9999.f ;
P_trop:navigation = "nav" ;
float theta_trop(record, y, x) ;
theta_trop:long_name = "potential temperature at tropopause" ;
theta_trop:units = "degK" ;
theta_trop:_FillValue = -9999.f ;
theta_trop:navigation = "nav" ;
float u_trop(record, y, x) ;
u_trop:long_name = "u-component of wind at tropopause" ;
u_trop:units = "meters/second" ;
u_trop:_FillValue = -9999.f ;
u_trop:navigation = "nav" ;
float v_trop(record, y, x) ;
v_trop:long_name = "v-component of wind at tropopause" ;
v_trop:units = "meters/second" ;
v_trop:_FillValue = -9999.f ;
v_trop:navigation = "nav" ;
float P_maxwind(record, y, x) ;
P_maxwind:long_name = "pressure at maximum wind" ;
P_maxwind:units = "Pa" ;
P_maxwind:_FillValue = -9999.f ;
P_maxwind:navigation = "nav" ;
float u_maxwind(record, y, x) ;
u_maxwind:long_name = "u-component of wind at max wind" ;
u_maxwind:units = "meters/second" ;
u_maxwind:_FillValue = -9999.f ;
u_maxwind:navigation = "nav" ;
float v_maxwind(record, y, x) ;
v_maxwind:long_name = "v-component of wind at max wind" ;
v_maxwind:units = "meters/second" ;
v_maxwind:_FillValue = -9999.f ;
v_maxwind:navigation = "nav" ;
float precip_rt(record, y, x) ;
precip_rt:long_name = "precipitation rate" ;
precip_rt:units = "kg/m2/s" ;
precip_rt:_FillValue = -9999.f ;
precip_rt:navigation = "nav" ;
float RH_lpdg(record, lpdg, y, x) ;
RH_lpdg:long_name = "relative humidity in boundary layer" ;
RH_lpdg:units = "percent" ;
RH_lpdg:_FillValue = -9999.f ;
RH_lpdg:navigation = "nav" ;
float u_lpdg(record, lpdg, y, x) ;
u_lpdg:long_name = "u-component of wind in boundary layer" ;
u_lpdg:units = "meters/second" ;
u_lpdg:_FillValue = -9999.f ;
u_lpdg:navigation = "nav" ;
float v_lpdg(record, lpdg, y, x) ;
v_lpdg:long_name = "v-component of wind in boundary layer" ;
v_lpdg:units = "meters/second" ;
v_lpdg:_FillValue = -9999.f ;
v_lpdg:navigation = "nav" ;
float T_lpdg(record, lpdg, y, x) ;
T_lpdg:long_name = "temperature in boundary layer" ;
T_lpdg:units = "degK" ;
T_lpdg:_FillValue = -9999.f ;
T_lpdg:navigation = "nav" ;
// Vertical velocity (presure)
float omega_lpdg(record, lpdg, y, x) ;
omega_lpdg:long_name = "Vertical velocity (presure)" ;
omega_lpdg:units = "Pa/s" ;
omega_lpdg:_FillValue = -9999.f ;
omega_lpdg:navigation = "nav" ;
float bgrun(record, y, x) ;
bgrun:long_name = "baseflow-groundwater runoff" ;
bgrun:units = "kg / m2" ;
bgrun:_FillValue = -9999.f ;
bgrun:navigation = "nav" ;
float P_sfc(record, y, x) ;
P_sfc:long_name = "pressure at surface" ;
P_sfc:units = "Pa" ;
P_sfc:_FillValue = -9999.f ;
P_sfc:navigation = "nav" ;
float Z_sfc(y, x) ;
Z_sfc:long_name = "terrain" ;
Z_sfc:units = "gp m" ;
Z_sfc:_FillValue = -9999.f ;
Z_sfc:navigation = "nav" ;
float P_htfl(record, y, x) ;
P_htfl:long_name = "pressure" ;
P_htfl:units = "Pa" ;
P_htfl:_FillValue = -9999.f ;
P_htfl:navigation = "nav" ;
float Z_htfl(record, y, x) ;
Z_htfl:long_name = "geopotential height" ;
Z_htfl:units = "gp m" ;
Z_htfl:_FillValue = -9999.f ;
Z_htfl:navigation = "nav" ;
float RH_htfl(record, y, x) ;
RH_htfl:long_name = "relative humidity" ;
RH_htfl:units = "percent" ;
RH_htfl:_FillValue = -9999.f ;
RH_htfl:navigation = "nav" ;
// snow depth
float snow(record, y, x) ;
snow:long_name = "Snow depth" ;
snow:units = "m" ;
snow:_FillValue = -9999.f ;
snow:navigation = "nav" ;
float pr_water_atm(record, y, x) ; // entire atmosphere as single
layer
pr_water_atm:long_name = "precipitable water" ;
pr_water_atm:units = "kg/m2" ;
pr_water_atm:_FillValue = -9999.f ;
pr_water_atm:navigation = "nav" ;
float helc_sfc(record, y, x) ;
helc_sfc:long_name = "Storm relative helicity" ;
helc_sfc:units = "m2 / s2" ;
helc_sfc:_FillValue = -9999.f ;
helc_sfc:navigation = "nav" ;
// u-componet of storm
float ustm_sfc(record, y, x) ;
ustm_sfc:long_name = "u-componet of storm" ;
ustm_sfc:units = "m/s" ;
ustm_sfc:_FillValue = -9999.f ;
ustm_sfc:navigation = "nav" ;
// v-componet of storm
float vstm_sfc(record, y, x) ;
vstm_sfc:long_name = "v-componet of storm" ;
vstm_sfc:units = "m/s" ;
vstm_sfc:_FillValue = -9999.f ;
vstm_sfc:navigation = "nav" ;
float Pm_msl(record, y, x) ;
Pm_msl:long_name = "pressure at mean sea level (MAPS
reduction)" ;
Pm_msl:units = "Pa" ;
Pm_msl:_FillValue = -9999.f ;
Pm_msl:navigation = "nav" ;
float Ptend_sfc(record, y, x) ;
Ptend_sfc:long_name = "pressure tendency at surface" ;
Ptend_sfc:units = "Pa / s" ;
Ptend_sfc:_FillValue = -9999.f ;
Ptend_sfc:navigation = "nav" ;
float theta_fhg(record, fhg, y, x) ;
theta_fhg:long_name = "potential temperature at fhg" ;
theta_fhg:units = "degK" ;
theta_fhg:_FillValue = -9999.f ;
theta_fhg:navigation = "nav" ;
float TD_fhg(record, fhg, y, x) ;
TD_fhg:long_name = "Dew point temperature at fhg" ;
TD_fhg:units = "degK" ;
TD_fhg:_FillValue = -9999.f ;
TD_fhg:navigation = "nav" ;
float T_TD_fhg(record, fhg, y, x) ;
T_TD_fhg:long_name = "Dew point depressionat fhg" ;
T_TD_fhg:units = "degK" ;
T_TD_fhg:_FillValue = -9999.f ;
T_TD_fhg:navigation = "nav" ;
float u_fhg(record, fhg, y, x) ;
u_fhg:long_name = "u-component of wind at fixed height above
ground" ;
u_fhg:units = "meters/second" ;
u_fhg:_FillValue = -9999.f ;
u_fhg:navigation = "nav" ;
float v_fhg(record, fhg, y, x) ;
v_fhg:long_name = "v-component of wind at fixed height above
ground" ;
v_fhg:units = "meters/second" ;
v_fhg:_FillValue = -9999.f ;
v_fhg:navigation = "nav" ;
float T_fhg(record, fhg, y, x) ;
T_fhg:long_name = "temperature at fixed height above ground" ;
T_fhg:units = "degK" ;
T_fhg:_FillValue = -9999.f ;
T_fhg:navigation = "nav" ;
float RH_fhg(record, fhg, y, x) ;
RH_fhg:long_name = "relative humidity at fixed height above
ground" ;
RH_fhg:units = "percent" ;
RH_fhg:_FillValue = -9999.f ;
RH_fhg:navigation = "nav" ;
float spec_hum_fhg(record, fhg, y, x) ;
spec_hum_fhg:long_name = "Specific humidity at fixed height
above ground" ;
spec_hum_fhg:units = "percent" ;
spec_hum_fhg:_FillValue = -9999.f ;
spec_hum_fhg:navigation = "nav" ;
float thpa_sfc(record, y, x) ;
thpa_sfc:long_name = "equivalent potential temperature" ;
thpa_sfc:units = "K" ;
thpa_sfc:_FillValue = -9999.f ;
thpa_sfc:navigation = "nav" ;
float cin_sfc(record, y, x) ;
cin_sfc:long_name = "surface convective inhibition" ;
cin_sfc:units = "J/kg" ;
cin_sfc:_FillValue = -9999.f ;
cin_sfc:navigation = "nav" ;
float cape_sfc(record, y, x) ;
cape_sfc:long_name = "surface convective available potential
energy" ;
cape_sfc:units = "J/kg" ;
cape_sfc:_FillValue = -9999.f ;
cape_sfc:navigation = "nav" ;
// Lifted index between two levels
float LI(record, y, x) ;
LI:long_name = "lifted index" ;
LI:units = "degK" ;
LI:_FillValue = -9999.f ; // To fill grid corners
LI:navigation = "nav" ;
float bli_sfc(record, y, x) ; // Best Lifted index
bli_sfc:long_name = "Best lifted index" ;
bli_sfc:units = "degK" ;
bli_sfc:_FillValue = -9999.f ; // To fill grid corners
bli_sfc:navigation = "nav" ;
float precip_ls(record, y, x) ;
precip_ls:long_name = "large scale precipitation over
accumulation interval" ;
precip_ls:units = "kg/m2" ;
precip_ls:_FillValue = -9999.f ;
precip_ls:navigation = "nav" ;
float precip_cn(record, y, x) ;
precip_cn:long_name = "convective precipitation over
accumulation interval" ;
precip_cn:units = "kg/m2" ;
precip_cn:_FillValue = -9999.f ;
precip_cn:navigation = "nav" ;
float cfrzrn(record, y, x) ;
cfrzrn:long_name = "Categorical freezing rain" ;
cfrzrn:_FillValue = -9999.f ;
cfrzrn:navigation = "nav" ;
float crain(record, y, x) ;
crain:long_name = "Categorical rain" ;
crain:_FillValue = -9999.f ;
crain:navigation = "nav" ;
float cicepl(record, y, x) ;
cicepl:long_name = "Categorical ice pellets" ;
cicepl:_FillValue = -9999.f ;
cicepl:navigation = "nav" ;
float csnow(record, y, x) ;
csnow:long_name = "Categorical snow" ;
csnow:_FillValue = -9999.f ;
csnow:navigation = "nav" ;
data:
level = 1000, 975, 950, 925, 900, 875, 850, 825, 800, 775, 750, 725,
700, 675, 650, 625, 600, 575, 550, 525, 500, 475, 450, 425, 400,
375, 350, 325, 300, 275, 250, 225, 200, 175, 150, 125, 100, 75,
50, 25 ;
hybridlevel = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40 ;
soillevel = 5, 20, 40, 160, 300 ;
soil_lpdg_top = 0, 5, 60, 150 ;
soil_lpdg_bot = 5, 30, 90, 180 ;
lpdg_bot = 0, 30, 60, 90, 120, 150 ;
lpdg_top = 30, 60, 90, 120, 150, 180 ;
fhg = 2, 10 ;
model_id = 105 ;
// Navigation
nav_model = "GRIB1" ;
grid_type_code = 3 ;
grid_type = "Lambert conformal" ;
grid_name = "AWIPS grid 255: Regional CONUS" ;
grid_center = 7 ;
grid_number = 236, 255 ;
x_dim = "x" ;
y_dim = "y" ;
Nx = 151 ;
Ny = 113 ;
La1 = 16.281 ;
Lo1 = 233.862 ;
ResCompFlag = 8 ;
Lov = 265.0 ;
Dx = 40635 ;
Dy = 40635 ;
ProjFlag = 0 ;
Latin1 = 25.0 ;
Latin2 = 25.0 ;
SpLat = 0.0 ;
SpLon = 0.0 ;
}