NOAA-PMEL / LAS

Live Access Server
https://ferret.pmel.noaa.gov/LAS/
The Unlicense
13 stars 5 forks source link

automated configuration of curvilinear and sigma coordinate datasets #819

Open karlmsmith opened 6 years ago

karlmsmith commented 6 years ago

Reported by steven.c.hankin on 11 Jun 2010 20:33 UTC Stretegies are needed that can automate the configuration of i) curvilinear datasets (needing an index map file) ; and ii) sigma coordinate datasets (requiring F-TDS vertical regridding support). Presumably some new scripts or utilities will be needed that will by some means be triggered by addXML to create index map files and configure datasets in F-TDS.

Migrated-From: http://dunkel.pmel.noaa.gov/trac/las/ticket/813

karlmsmith commented 6 years ago

Attachment from @AnsleyManke on 23 Jun 2010 17:00 UTC

hi_temp.nc.zip

karlmsmith commented 6 years ago

Comment by @AnsleyManke on 23 Jun 2010 17:00 UTC Attached is an example dataset (created from one at John Maurer's server at soest.hawaii).

It has curvilinear coordinates, and a variable, TEMP, having a coordinates attribute that lists the curvilinear coordinates. Currently, running AddXML on the resulting file yields the message "No Lat/Lon grids found."

Here is the Ferret script I used to create this subset, followed by its ncdump header.

use "http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/HI-ROMS_Forecast_Model_Run_Collection_best.ncd"
set att temp.coordinates = "LON_RHO LAT_RHO S_RHO1_1 OCEAN_TIME"
set att/output temp.coordinates
set mem/siz=200
save/file=hi_temp.nc/clobber temp[k=1,L=1],lon_rho,lat_rho
netcdf hi_temp {
dimensions:
        XI_RHO = 294 ;
        ETA_RHO = 194 ;
        S_RHO1_2 = 2 ;
        OCEAN_TIME = UNLIMITED ; // (5 currently)
variables:
        double XI_RHO(XI_RHO) ;
                XI_RHO:units = "degrees_east" ;
                XI_RHO:modulo = 360. ;
                XI_RHO:point_spacing = "even" ;
                XI_RHO:axis = "X" ;
        double ETA_RHO(ETA_RHO) ;
                ETA_RHO:units = "degrees_north" ;
                ETA_RHO:point_spacing = "even" ;
                ETA_RHO:axis = "Y" ;
        double S_RHO1_2(S_RHO1_2) ;
                S_RHO1_2:long_name = "S-coordinate at RHO-points" ;
                S_RHO1_2:positive = "up" ;
                S_RHO1_2:point_spacing = "even" ;
                S_RHO1_2:axis = "Z" ;
        double OCEAN_TIME(OCEAN_TIME) ;
                OCEAN_TIME:units = "hours since 2010-06-01 00:00:00" ;
                OCEAN_TIME:long_name = "forecast time coordinate" ;
                OCEAN_TIME:time_origin = "01-JUN-2010 00:00:00" ;
                OCEAN_TIME:axis = "T" ;
        float TEMP(OCEAN_TIME, S_RHO1_2, ETA_RHO, XI_RHO) ;
                TEMP:_FillValue = 1.e-34f ;
                TEMP:long_name = "potential temperature" ;
                TEMP:units = "Celsius" ;
                TEMP:coordinates = "LON_RHO LAT_RHO S_RHO1_2 OCEAN_TIME" ;
                TEMP:history = "From HI-ROMS_Forecast_Model_Run_Collection_best.ncd" ;
        float LON_RHO(ETA_RHO, XI_RHO) ;
                LON_RHO:long_name = "longitude of RHO-points" ;
                LON_RHO:units = "degree_east" ;
                LON_RHO:history = "From HI-ROMS_Forecast_Model_Run_Collection_best.ncd" ;
        float LAT_RHO(ETA_RHO, XI_RHO) ;
                LAT_RHO:long_name = "latitude of RHO-points" ;
                LAT_RHO:units = "degree_north" ;
                LAT_RHO:history = "From HI-ROMS_Forecast_Model_Run_Collection_best.ncd" ;

// global attributes:
                :history = "FERRET V6.62   23-Jun-10" ;
                :Conventions = "CF-1.0" ;
karlmsmith commented 6 years ago

Comment by steven.c.hankin on 30 Jun 2010 17:53 UTC The priority of automating curvilinear datasets is cranking up as we are seeing lots of these in UAF.

The task for addXML is to automate the process of

  1. determining the lat/long domain of a curvilinear variable (as needed for axis widgets)
  2. creating properties (Ferret symbols) that hold the names of the lon and lat 2D coordinate variables.

It is also desirable for Ferret to automate much of this, as these datasets increasingly show up in desktop usage. However, the approach above (resting on addXML changes) paves a smooth transition from the current scripts.

karlmsmith commented 6 years ago

Modified by @noaaroland on 6 Jan 2011 22:59 UTC