serving ROMS output via GDS

20 views
Skip to first unread message

Jim Potemra

unread,
Mar 31, 2009, 3:38:43 PM3/31/09
to IOOS Model Data Interoperability Working Group

We are presently running both a GrADS DODS Server (GDS) and a THREDDS
Server (TDS); the former due to it's ability to serve a wide variety
of formats (and we have a lot of GrADS users here). I'm trying to
configure output from a local implementation of ROMS via GDS, but the
format of the output files are complex, and GDS has a hard time with
"non-standard" x/y co-ordinate specifications. I can get around this
by using a GrADS data descriptor file (so-called control file to map
variables), and I was wondering if there was any experience with this
in the group. In short, I would like to serve ROMS output via GDS.
Thanks,

Jim

-------------- ncdump -h roms-30days.nc ----------------------
netcdf roms-30days {
dimensions:
tracer = 2 ;
s_rho = 30 ;
s_w = 31 ;
ocean_time = UNLIMITED ; // (31 currently)
eta_u = 194 ;
xi_u = 293 ;
eta_v = 193 ;
xi_v = 294 ;
boundary = 4 ;
eta_rho = 194 ;
xi_rho = 294 ;
eta_psi = 193 ;
xi_psi = 293 ;
variables:
double Akk_bak ;
Akk_bak:long_name = "background vertical mixing
coefficient for turbulent energy" ;
Akk_bak:units = "meter2 second-1" ;
double Akp_bak ;
Akp_bak:long_name = "background vertical mixing
coefficient for length scale" ;
Akp_bak:units = "meter2 second-1" ;
double Akt_bak(tracer) ;
Akt_bak:long_name = "background vertical mixing
coefficient for tracers" ;
Akt_bak:units = "meter2 second-1" ;
double Akv_bak ;
Akv_bak:long_name = "background vertical mixing
coefficient for momentum" ;
Akv_bak:units = "meter2 second-1" ;
double Cs_r(s_rho) ;
Cs_r:long_name = "S-coordinate stretching curves at
RHO-points" ;
Cs_r:valid_min = -1. ;
Cs_r:valid_max = 0. ;
Cs_r:field = "Cs_r, scalar" ;
double Cs_w(s_w) ;
Cs_w:long_name = "S-coordinate stretching curves at W-
points" ;
Cs_w:valid_min = -1. ;
Cs_w:valid_max = 0. ;
Cs_w:field = "Cs_w, scalar" ;
float DU_avg1(ocean_time, eta_u, xi_u) ;
DU_avg1:long_name = "time averaged u-flux for 2D
equations" ;
DU_avg1:units = "meter3 second-1" ;
DU_avg1:time = "ocean_time" ;
DU_avg1:coordinates = "lon_u lat_u ocean_time" ;
DU_avg1:field = "DU_avg1, scalar, series" ;
float DU_avg2(ocean_time, eta_u, xi_u) ;
DU_avg2:long_name = "time averaged u-flux for 3D
equations coupling" ;
DU_avg2:units = "meter3 second-1" ;
DU_avg2:time = "ocean_time" ;
DU_avg2:coordinates = "lon_u lat_u ocean_time" ;
DU_avg2:field = "DU_avg2, scalar, series" ;
float DV_avg1(ocean_time, eta_v, xi_v) ;
DV_avg1:long_name = "time averaged v-flux for 2D
equations" ;
DV_avg1:units = "meter3 second-1" ;
DV_avg1:time = "ocean_time" ;
DV_avg1:coordinates = "lon_v lat_v ocean_time" ;
DV_avg1:field = "DV_avg1, scalar, series" ;
float DV_avg2(ocean_time, eta_v, xi_v) ;
DV_avg2:long_name = "time averaged v-flux for 3D
equations coupling" ;
DV_avg2:units = "meter3 second-1" ;
DV_avg2:time = "ocean_time" ;
DV_avg2:coordinates = "lon_v lat_v ocean_time" ;
DV_avg2:field = "DV_avg2, scalar, series" ;
double FSobc_in(boundary) ;
FSobc_in:long_name = "free-surface inflow, nudging
inverse time scale" ;
FSobc_in:units = "second-1" ;
double FSobc_out(boundary) ;
FSobc_out:long_name = "free-surface outflow, nudging
inverse time scale" ;
FSobc_out:units = "second-1" ;
double Falpha ;
Falpha:long_name = "Power-law shape barotropic filter
parameter" ;
double Fbeta ;
Fbeta:long_name = "Power-law shape barotropic filter
parameter" ;
double Fgamma ;
Fgamma:long_name = "Power-law shape barotropic filter
parameter" ;
double M2nudg ;
M2nudg:long_name = "2D momentum nudging/relaxation
inverse time scale" ;
M2nudg:units = "day-1" ;
double M2obc_in(boundary) ;
M2obc_in:long_name = "2D momentum inflow, nudging
inverse time scale" ;
M2obc_in:units = "second-1" ;
double M2obc_out(boundary) ;
M2obc_out:long_name = "2D momentum outflow, nudging
inverse time scale" ;
M2obc_out:units = "second-1" ;
double M3nudg ;
M3nudg:long_name = "3D momentum nudging/relaxation
inverse time scale" ;
M3nudg:units = "day-1" ;
double M3obc_in(boundary) ;
M3obc_in:long_name = "3D momentum inflow, nudging
inverse time scale" ;
M3obc_in:units = "second-1" ;
double M3obc_out(boundary) ;
M3obc_out:long_name = "3D momentum outflow, nudging
inverse time scale" ;
M3obc_out:units = "second-1" ;
double Tcline ;
Tcline:long_name = "S-coordinate surface/bottom layer
width" ;
Tcline:units = "meter" ;
double Tnudg(tracer) ;
Tnudg:long_name = "Tracers nudging/relaxation inverse
time scale" ;
Tnudg:units = "day-1" ;
double Tobc_in(boundary, tracer) ;
Tobc_in:long_name = "tracers inflow, nudging inverse
time scale" ;
Tobc_in:units = "second-1" ;
double Tobc_out(boundary, tracer) ;
Tobc_out:long_name = "tracers outflow, nudging inverse
time scale" ;
Tobc_out:units = "second-1" ;
double Znudg ;
Znudg:long_name = "free-surface nudging/relaxation
inverse time scale" ;
Znudg:units = "day-1" ;
double Zob ;
Zob:long_name = "bottom roughness" ;
Zob:units = "meter" ;
double Zos ;
Zos:long_name = "surface roughness" ;
Zos:units = "meter" ;
double angle(eta_rho, xi_rho) ;
angle:long_name = "angle between XI-axis and EAST" ;
angle:units = "radians" ;
angle:coordinates = "lon_rho lat_rho" ;
angle:field = "angle, scalar" ;
double dstart ;
dstart:long_name = "time stamp assigned to model
initilization" ;
dstart:units = "days since 2000-01-01 00:00:00" ;
double dt ;
dt:long_name = "size of long time-steps" ;
dt:units = "second" ;
double dtfast ;
dtfast:long_name = "size of short time-steps" ;
dtfast:units = "second" ;
double el ;
el:long_name = "domain length in the ETA-direction" ;
el:units = "meter" ;
float evaporation(ocean_time, eta_rho, xi_rho) ;
evaporation:long_name = "evaporation rate" ;
evaporation:units = "kilogram meter-2 second-1" ;
evaporation:negative_value = "downward flux,
freshening (condensation)" ;
evaporation:positive_value = "upward flux, salting
(evaporation)" ;
evaporation:time = "ocean_time" ;
evaporation:coordinates = "lon_rho lat_rho
ocean_time" ;
evaporation:field = "evaporation, scalar, series" ;
double f(eta_rho, xi_rho) ;
f:long_name = "Coriolis parameter at RHO-points" ;
f:units = "second-1" ;
f:coordinates = "lon_rho lat_rho" ;
f:field = "coriolis, scalar" ;
double gamma2 ;
gamma2:long_name = "slipperiness parameter" ;
double gls_Kmin ;
gls_Kmin:long_name = "minimum value of specific
turbulent kinetic energy" ;
double gls_Pmin ;
gls_Pmin:long_name = "minimum Value of dissipation" ;
double gls_c1 ;
gls_c1:long_name = "shear production coefficient" ;
double gls_c2 ;
gls_c2:long_name = "dissipation coefficient" ;
double gls_c3m ;
gls_c3m:long_name = "buoyancy production coefficient
(minus)" ;
double gls_c3p ;
gls_c3p:long_name = "buoyancy production coefficient
(plus)" ;
double gls_cmu0 ;
gls_cmu0:long_name = "stability coefficient" ;
double gls_m ;
gls_m:long_name = "turbulent kinetic energy
exponent" ;
double gls_n ;
gls_n:long_name = "turbulent length scale exponent" ;
double gls_p ;
gls_p:long_name = "stability exponent" ;
double gls_sigk ;
gls_sigk:long_name = "constant Schmidt number for
TKE" ;
double gls_sigp ;
gls_sigp:long_name = "constant Schmidt number for
PSI" ;
double h(eta_rho, xi_rho) ;
h:long_name = "bathymetry at RHO-points" ;
h:units = "meter" ;
h:coordinates = "lon_rho lat_rho" ;
h:field = "bath, scalar" ;
double hc ;
hc:long_name = "S-coordinate parameter, critical
depth" ;
hc:units = "meter" ;
double lat_psi(eta_psi, xi_psi) ;
lat_psi:long_name = "latitude of PSI-points" ;
lat_psi:units = "degree_north" ;
lat_psi:field = "lat_psi, scalar" ;
double lat_rho(eta_rho, xi_rho) ;
lat_rho:long_name = "latitude of RHO-points" ;
lat_rho:units = "degree_north" ;
lat_rho:field = "lat_rho, scalar" ;
double lat_u(eta_u, xi_u) ;
lat_u:long_name = "latitude of U-points" ;
lat_u:units = "degree_north" ;
lat_u:field = "lat_u, scalar" ;
double lat_v(eta_v, xi_v) ;
lat_v:long_name = "latitude of V-points" ;
lat_v:units = "degree_north" ;
lat_v:field = "lat_v, scalar" ;
float latent(ocean_time, eta_rho, xi_rho) ;
latent:long_name = "net latent heat flux" ;
latent:units = "watt meter-2" ;
latent:negative_value = "upward flux, cooling" ;
latent:positive_value = "downward flux, heating" ;
latent:time = "ocean_time" ;
latent:coordinates = "lon_rho lat_rho ocean_time" ;
latent:field = "latent heat flux, scalar, series" ;
double lon_psi(eta_psi, xi_psi) ;
lon_psi:long_name = "longitude of PSI-points" ;
lon_psi:units = "degree_east" ;
lon_psi:field = "lon_psi, scalar" ;
double lon_rho(eta_rho, xi_rho) ;
lon_rho:long_name = "longitude of RHO-points" ;
lon_rho:units = "degree_east" ;
lon_rho:field = "lon_rho, scalar" ;
double lon_u(eta_u, xi_u) ;
lon_u:long_name = "longitude of U-points" ;
lon_u:units = "degree_east" ;
lon_u:field = "lon_u, scalar" ;
double lon_v(eta_v, xi_v) ;
lon_v:long_name = "longitude of V-points" ;
lon_v:units = "degree_east" ;
lon_v:field = "lon_v, scalar" ;
double mask_psi(eta_psi, xi_psi) ;
mask_psi:long_name = "mask on psi-points" ;
mask_psi:option_0 = "land" ;
mask_psi:option_1 = "water" ;
mask_psi:coordinates = "lon_psi lat_psi" ;
double mask_rho(eta_rho, xi_rho) ;
mask_rho:long_name = "mask on RHO-points" ;
mask_rho:option_0 = "land" ;
mask_rho:option_1 = "water" ;
mask_rho:coordinates = "lon_rho lat_rho" ;
double mask_u(eta_u, xi_u) ;
mask_u:long_name = "mask on U-points" ;
mask_u:option_0 = "land" ;
mask_u:option_1 = "water" ;
mask_u:coordinates = "lon_u lat_u" ;
double mask_v(eta_v, xi_v) ;
mask_v:long_name = "mask on V-points" ;
mask_v:option_0 = "land" ;
mask_v:option_1 = "water" ;
mask_v:coordinates = "lon_v lat_v" ;
int nAVG ;
nAVG:long_name = "number of time-steps between time-
averaged records" ;
int nHIS ;
nHIS:long_name = "number of time-steps between history
records" ;
int nRST ;
nRST:long_name = "number of time-steps between restart
records" ;
nRST:cycle = "only latest two records are
maintained" ;
int ndefAVG ;
ndefAVG:long_name = "number of time-steps between the
creation of average files" ;
int ndefHIS ;
ndefHIS:long_name = "number of time-steps between the
creation of history files" ;
int ndtfast ;
ndtfast:long_name = "number of short time-steps" ;
int ntimes ;
ntimes:long_name = "number of long time-steps" ;
int ntsAVG ;
ntsAVG:long_name = "starting time-step for
accumulation of time-averaged fields" ;
double ocean_time(ocean_time) ;
ocean_time:long_name = "time since initialization" ;
ocean_time:units = "seconds since 2000-01-01
00:00:00" ;
ocean_time:calendar = "gregorian" ;
ocean_time:field = "time, scalar, series" ;
double pm(eta_rho, xi_rho) ;
pm:long_name = "curvilinear coordinate metric in XI" ;
pm:units = "meter-1" ;
pm:coordinates = "lon_rho lat_rho" ;
pm:field = "pm, scalar" ;
double pn(eta_rho, xi_rho) ;
pn:long_name = "curvilinear coordinate metric in
ETA" ;
pn:units = "meter-1" ;
pn:coordinates = "lon_rho lat_rho" ;
pn:field = "pn, scalar" ;
float rain(ocean_time, eta_rho, xi_rho) ;
rain:long_name = "rain fall rate" ;
rain:units = "kilogram meter-2 second-1" ;
rain:negative_value = "upward flux, salting (NOT
POSSIBLE)" ;
rain:positive_value = "downward flux, freshening
(precipitation)" ;
rain:time = "ocean_time" ;
rain:coordinates = "lon_rho lat_rho ocean_time" ;
rain:field = "rain, scalar, series" ;
double rdrg ;
rdrg:long_name = "linear drag coefficient" ;
rdrg:units = "meter second-1" ;
double rdrg2 ;
rdrg2:long_name = "quadratic drag coefficient" ;
double rho0 ;
rho0:long_name = "mean density used in Boussinesq
approximation" ;
rho0:units = "kilogram meter-3" ;
double s_rho(s_rho) ;
s_rho:long_name = "S-coordinate at RHO-points" ;
s_rho:valid_min = -1. ;
s_rho:valid_max = 0. ;
s_rho:standard_name = "ocean_s_coordinate" ;
s_rho:formula_terms = "s: s_rho eta: zeta depth: h a:
theta_s b: theta_b depth_c: hc" ;
s_rho:field = "s_rho, scalar" ;
double s_w(s_w) ;
s_w:long_name = "S-coordinate at W-points" ;
s_w:valid_min = -1. ;
s_w:valid_max = 0. ;
s_w:standard_name = "ocean_s_coordinate" ;
s_w:formula_terms = "s: s_w eta: zeta depth: h a:
theta_s b: theta_b depth_c: hc" ;
s_w:field = "s_w, scalar" ;
float salt(ocean_time, s_rho, eta_rho, xi_rho) ;
salt:long_name = "salinity" ;
salt:time = "ocean_time" ;
salt:coordinates = "lon_rho lat_rho s_rho
ocean_time" ;
salt:field = "salinity, scalar, series" ;
float sensible(ocean_time, eta_rho, xi_rho) ;
sensible:long_name = "net sensible heat flux" ;
sensible:units = "watt meter-2" ;
sensible:negative_value = "upward flux, cooling" ;
sensible:positive_value = "downward flux, heating" ;
sensible:time = "ocean_time" ;
sensible:coordinates = "lon_rho lat_rho ocean_time" ;
sensible:field = "sensible heat flux, scalar,
series" ;
char spherical ;
spherical:long_name = "grid type logical switch" ;
spherical:option_T = "spherical" ;
spherical:option_F = "Cartesian" ;
float sustr(ocean_time, eta_u, xi_u) ;
sustr:long_name = "surface u-momentum stress" ;
sustr:units = "newton meter-2" ;
sustr:time = "ocean_time" ;
sustr:coordinates = "lon_u lat_u ocean_time" ;
sustr:field = "surface u-momentum stress, scalar,
series" ;
float svstr(ocean_time, eta_v, xi_v) ;
svstr:long_name = "surface v-momentum stress" ;
svstr:units = "newton meter-2" ;
svstr:time = "ocean_time" ;
svstr:coordinates = "lon_v lat_v ocean_time" ;
svstr:field = "surface v-momentum stress, scalar,
series" ;
float temp(ocean_time, s_rho, eta_rho, xi_rho) ;
temp:long_name = "potential temperature" ;
temp:units = "Celsius" ;
temp:time = "ocean_time" ;
temp:coordinates = "lon_rho lat_rho s_rho
ocean_time" ;
temp:field = "temperature, scalar, series" ;
double theta_b ;
theta_b:long_name = "S-coordinate bottom control
parameter" ;
double theta_s ;
theta_s:long_name = "S-coordinate surface control
parameter" ;
double tnu2(tracer) ;
tnu2:long_name = "Laplacian mixing coefficient for
tracers" ;
tnu2:units = "meter2 second-1" ;
float u(ocean_time, s_rho, eta_u, xi_u) ;
u:long_name = "u-momentum component" ;
u:units = "meter second-1" ;
u:time = "ocean_time" ;
u:coordinates = "lon_u lat_u s_rho ocean_time" ;
u:field = "u-velocity, scalar, series" ;
float ubar(ocean_time, eta_u, xi_u) ;
ubar:long_name = "vertically integrated u-momentum
component" ;
ubar:units = "meter second-1" ;
ubar:time = "ocean_time" ;
ubar:coordinates = "lon_u lat_u ocean_time" ;
ubar:field = "ubar-velocity, scalar, series" ;
float v(ocean_time, s_rho, eta_v, xi_v) ;
v:long_name = "v-momentum component" ;
v:units = "meter second-1" ;
v:time = "ocean_time" ;
v:coordinates = "lon_v lat_v s_rho ocean_time" ;
v:field = "v-velocity, scalar, series" ;
float vbar(ocean_time, eta_v, xi_v) ;
vbar:long_name = "vertically integrated v-momentum
component" ;
vbar:units = "meter second-1" ;
vbar:time = "ocean_time" ;
vbar:coordinates = "lon_v lat_v ocean_time" ;
vbar:field = "vbar-velocity, scalar, series" ;
double visc2 ;
visc2:long_name = "Laplacian mixing coefficient for
momentum" ;
visc2:units = "meter2 second-1" ;
float w(ocean_time, s_w, eta_rho, xi_rho) ;
w:long_name = "vertical momentum component" ;
w:units = "meter second-1" ;
w:time = "ocean_time" ;
w:coordinates = "lon_rho lat_rho s_w ocean_time" ;
w:field = "w-velocity, scalar, series" ;
double xl ;
xl:long_name = "domain length in the XI-direction" ;
xl:units = "meter" ;
float zeta(ocean_time, eta_rho, xi_rho) ;
zeta:long_name = "free-surface" ;
zeta:units = "meter" ;
zeta:time = "ocean_time" ;
zeta:coordinates = "lon_rho lat_rho ocean_time" ;
zeta:field = "free-surface, scalar, series" ;

// global attributes:
:type = "ROMS/TOMS history file" ;
:Conventions = "CF-1.0" ;
:title = "HI-POOIS ISLAND GRID (4km)" ;
:var_info = "varinfo.dat" ;
:rst_file = "hiig_rst.nc" ;
:his_file = "hiig_his.nc" ;
:avg_file = "hiig_avg.nc" ;
:grd_file = "/share/observer/powellb/hioos/grid/roms-
hiig-grid-ncom.nc" ;
:ini_file = "ini.nc" ;
:frc_file_01 = "/share/observer/powellb/hioos/frc/ncep/
hiig_ncep_pair.nc" ;
:frc_file_02 = "/share/observer/powellb/hioos/frc/ncep/
hiig_ncep_swrad.nc" ;
:frc_file_03 = "/share/observer/powellb/hioos/frc/ncep/
hiig_ncep_lwrad.nc" ;
:frc_file_04 = "/share/observer/powellb/hioos/frc/ncep/
hiig_ncep_rain.nc" ;
:frc_file_05 = "/share/observer/powellb/hioos/frc/ncep/
hiig_ncep_tair.nc" ;
:frc_file_06 = "/share/observer/powellb/hioos/frc/ncep/
hiig_ncep_qair.nc" ;
:frc_file_07 = "/share/observer/powellb/hioos/frc/ncep/
hiig_ncep-cora_wind.nc" ;
:bry_file = "/share/observer/powellb/hioos/clim/ncom/
ncom-bry-2006.nc" ;
:clm_file = "/share/observer/powellb/hioos/clim/ncom/
ncom-clim-2006.nc" ;
:script_file = "/share/observer/powellb/hioos/nlm-
ncom3/work/ocean.in" ;
:svn_url = ;
:svn_rev = "1" ;
:code_dir = "/share/observer/powellb/roms/src" ;
:header_dir = "/share/observer/powellb/hioos/nlm-
ncom3" ;
:header_file = "hiig.h" ;
:os = "Linux" ;
:cpu = "x86_64" ;
:compiler_system = "ifort" ;
:compiler_command = "/usr/mpi/intel/openmpi-2.2/bin/
mpif90" ;
:compiler_flags = " -ip -O3 -i_dynamic -xT -free" ;
:tiling = "008x007" ;
:history = "Thu Mar 19 16:30:33 2009: ncks -d
ocean_time,60,90 hiig_his_2192.nc /share/observer/dmac/today/ocn/
roms-30days.nc\n",
"ROMS/TOMS, Version 3.0, Tuesday - March 10,
2009 - 7:38:54 PM" ;
:ana_file = "/share/observer/powellb/hioos/nlm-
ncom3/../include/ana_btflux.h, /share/observer/powellb/hioos/nlm-
ncom3/../include/ana_nudgcoef.h" ;
:CPP_options = "hiig, ANA_BSFLUX, ANA_BTFLUX,
ASSUMED_SHAPE, AVERAGES, AVERAGES_FLUXES, BULK_FLUXES, CURVGRID,
DJ_GRADPS, DOUBLE_PRECISION, EAST_FSCHAPMAN, EAST_M2FLATHER,
EAST_M3NUDGING, EAST_M3RADIATION, EAST_TNUDGING, EAST_TRADIATION,
EMINUSP, FORWARD_WRITE, GLS_MIXING, KANTHA_CLAYSON, LONGWAVE_OUT,
M2CLIMATOLOGY, M2CLM_NUDGING, M3CLIMATOLOGY, M3CLM_NUDGING, MASKING,
MIX_GEO_TS, MIX_S_UV, MPI, NONLINEAR, NONLIN_EOS, NORTH_FSCHAPMAN,
NORTH_M2FLATHER, NORTH_M3NUDGING, NORTH_M3RADIATION, NORTH_TNUDGING,
NORTH_TRADIATION, N2S2_HORAVG, POWER_LAW, PROFILE, K_GSCHEME,
RADIATION_2D, !RST_SINGLE, SALINITY, SOLAR_SOURCE, SOLVE3D,
SOUTH_FSCHAPMAN, SOUTH_M2FLATHER, SOUTH_M3NUDGING, SOUTH_M3RADIATION,
SOUTH_TNUDGING, SOUTH_TRADIATION, SPLINES, TCLIMATOLOGY, TCLM_NUDGING,
TS_U3HADVECTION, TS_C4VADVECTION, TS_DIF2, UV_ADV, UV_COR,
UV_U3HADVECTION, UV_C4VADVECTION, UV_QDRAG, UV_VIS2, VAR_RHO_2D,
WEST_FSCHAPMAN, WEST_M2FLATHER, WEST_M3NUDGING, WEST_M3RADIATION,
WEST_TNUDGING, WEST_TRADIATION, ZCLIMATOLOGY, ZCLM_NUDGING," ;
}

Richard Signell

unread,
Mar 31, 2009, 4:00:10 PM3/31/09
to ioos_model_...@googlegroups.com
Jim,

I actually don't know of anyone serving ROMS output via GDS.

The "Rutgers" version of ROMS (available via myroms.org) is
CF-compliant, and works great with the TDS. The "UCLA" version of
ROMS (run in SCCOOS, for example) needs some modifications and
additions in NcML to make it CF-compliant. See this page:
<http://groups.google.com/group/ioos_model_data_interop/web/using-ncml-to-cf-ize-the-jpl-roms-model-output>
for details.

One of the things I really like about TDS (in addition to NcML to
modify and aggregate datasets) is *it's* ability to serve a wide
variety of data:
- GRIB
- GRIB2
- NetCDF
- NetCDF4
- HDF4

So I'm curious: What additional formats are supported by GDS that you
guys use in your region?

I do realize that the server side processing and existing GrADS users
are other good reasons to have GDS running...

Thanks,
Rich
--
Dr. Richard P. Signell (508) 457-2229
USGS, 384 Woods Hole Rd.
Woods Hole, MA 02543-1598

James T. Potemra

unread,
Mar 31, 2009, 8:01:50 PM3/31/09
to ioos_model_...@googlegroups.com

Hi Rich:

I'm getting a Status 500 internal error from the CF-compliency check
following the link below. Now that TDS can handle more than just
netcdf, it may solve many of these issues. However, GDS can also handle
flat binary files (unformatted writes of an dimension). Also, not knowing
about NcML, using GDS data descriptor files we can rename variables
without disturbing the original data sets (we had some problems with
really long variable names that were no longer unique when keeping
only the first 15 characters).

Jim

Reply all
Reply to author
Forward
0 new messages