[Thread Prev][Thread Next][Index]

[ferret_users] vertical formula embedded in netcdf file



Hi group,

I am reading in a file created from one of the CMIP6 models. It appears to have a coordinate transformation embedded as metadata, which one might think would yield different z-levels for the 4D variable (vo) at each horizontal location. However, when I read the file into ferret v7.5, I get vo appearing on a single z-axis (which ferret labels as  "lev"), ranging from 1 to 7250. That axis has the same values as the "zlev" variable in the original file. Now, "zlev" is in fact used in the depth formula, but it is *not* the only term - other terms in the equation suggest that z-levels should vary by location and time (see the formula listed in the ncdump below). Is ferret in fact regridding to a uniform z-axis based on zlev, or is it erroneously assuming all is uniform?

Output from "show data", "show grid" and "ncdump" are appended below

Thanks for any insights or redirection to relevant text in the manual.

-Al Hermann

---------------------------------------------------

        NOAA/PMEL TMAP
        PyFerret v7.5 (optimized)
        Linux 4.15.0-1071-azure - 03/31/20
         7-May-20 14:19

yes? use vo_Omon_MIROC-ES2L_ssp585_r1i1p1f2_gn_201501-210012.nc
yes? sh dat
     currently SET data sets:
    1> /gscratch/bumblereem/wcheng/beast/cmip6/miroc-es2l/vo_Omon_MIROC-ES2L_ssp585_r1i1p1f2_gn_201501-210012.nc  (default)
 name     title                             I         J         K         L
 SIGMA    vertical coordinate formula ter  ...       ...       1:63      ...
 ETA      Sea Surface Height formula term  1:360     1:256     ...       1:1032
 DEPTH    Sea Floor Depth: formula term:   1:360     1:256     ...       ...
 DEPTH_C  vertical coordinate formula ter  ...       ...       ...       ...
 NSIGMA   vertical coordinate formula ter  ...       ...       ...       ...
 ZLEV     vertical coordinate formula ter  ...       ...       1:63      ...
 SIGMA_BNDS
          vertical coordinate formula ter  1:2       ...       1:63      ...
 ZLEV_BNDS
          vertical coordinate formula ter  1:2       ...       1:63      ...
 LATITUDE latitude                         1:360     1:256     ...       ...
 LONGITUDE
          longitude                        1:360     1:256     ...       ...
 VERTICES_LATITUDE
                                           1:360     1:256     1:4       ...
 VERTICES_LONGITUDE
                                           1:360     1:256     1:4       ...
 VO       Sea Water Y Velocity             1:360     1:256     1:63      1:1032

yes? sh g vo
    GRID GSM7
 name       axis              # pts   start                end                 subset
 X         LONGITUDE          360mr   1E                   0E(360)             full
 Y         LATITUDE           256 i   86S                  153.33N             full
 LEV       Z                   63 i   1                    7250                full
 TIME      TIME              1032 i   16-JAN-2015 12:00    16-DEC-2100 12:00   full



[hermann@n2213 miroc_cmip6]$ ncdump -h vo_Omon_MIROC-ES2L_ssp585_r1i1p1f2_gn_201501-210012.nc
netcdf vo_Omon_MIROC-ES2L_ssp585_r1i1p1f2_gn_201501-210012 {
dimensions:
        time = UNLIMITED ; // (1032 currently)
        lev = 63 ;
        y = 256 ;
        x = 360 ;
        bnds = 2 ;
        vertices = 4 ;
variables:
        double time(time) ;
                time:bounds = "time_bnds" ;
                time:units = "days since 1850-1-1" ;
                time:calendar = "gregorian" ;
                time:axis = "T" ;
                time:long_name = "time" ;
                time:standard_name = "time" ;
        double time_bnds(time, bnds) ;
        double lev(lev) ;
                lev:bounds = "lev_bnds" ;
                lev:axis = "Z" ;
                lev:long_name = "ocean sigma over z coordinate" ;
                lev:standard_name = "ocean_sigma_z" ;
                lev:formula = "for k <= nsigma: z(n,k,j,i) = eta(n,j,i) + sigma(k)*(min(depth_c,depth(j,i))+eta(n,j,i)) ; for k > nsigma: z(n,k,j,i) = zlev(k)" ;
                lev:formula_terms = "sigma: sigma eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev" ;
        double lev_bnds(lev, bnds) ;
                lev_bnds:formula = "for k <= nsigma: z(n,k,j,i) = eta(n,j,i) + sigma(k)*(min(depth_c,depth(j,i))+eta(n,j,i)) ; for k > nsigma: z(n,k,j,i) = zlev(k)" ;
                lev_bnds:standard_name = "ocean_sigma_z" ;
                lev_bnds:units = "" ;
                lev_bnds:formula_terms = "sigma: sigma_bnds eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev_bnds" ;
        double sigma(lev) ;
                sigma:long_name = "vertical coordinate formula term: sigma(k)" ;
        float eta(time, y, x) ;
                eta:long_name = "Sea Surface Height formula term: thetao" ;
                eta:units = "m" ;
                eta:original_units = "cm" ;
                eta:history = "2019-07-16T13:40:11Z altered by CMOR: Converted units from \'cm\' to \'m\'." ;
        float depth(y, x) ;
                depth:long_name = "Sea Floor Depth: formula term: thetao" ;
                depth:units = "m" ;
        double depth_c ;
                depth_c:long_name = "vertical coordinate formula term: depth_c" ;
        int nsigma ;
                nsigma:long_name = "vertical coordinate formula term: nsigma" ;
        double zlev(lev) ;
                zlev:long_name = "vertical coordinate formula term: zlev(k)" ;
        double sigma_bnds(lev, bnds) ;
                sigma_bnds:long_name = "vertical coordinate formula term: sigma(k+1/2)" ;
        double zlev_bnds(lev, bnds) ;
                zlev_bnds:long_name = "vertical coordinate formula term: zlev(k+1/2)" ;
        double y(y) ;
                y:bounds = "y_bnds" ;
                y:units = "degrees" ;
                y:axis = "Y" ;
                y:long_name = "y coordinate of projection" ;
                y:standard_name = "projection_y_coordinate" ;
        double y_bnds(y, bnds) ;
        double x(x) ;
                x:bounds = "x_bnds" ;
                x:units = "degrees" ;
                x:axis = "X" ;
                x:long_name = "x coordinate of projection" ;
                x:standard_name = "projection_x_coordinate" ;
        double x_bnds(x, bnds) ;
        float latitude(y, x) ;
                latitude:standard_name = "latitude" ;
                latitude:long_name = "latitude" ;
                latitude:units = "degrees_north" ;
                latitude:missing_value = 1.e+20f ;
                latitude:_FillValue = 1.e+20f ;
                latitude:bounds = "vertices_latitude" ;
        float longitude(y, x) ;
                longitude:standard_name = "longitude" ;
                longitude:long_name = "longitude" ;
                longitude:units = "degrees_east" ;
                longitude:missing_value = 1.e+20f ;
                longitude:_FillValue = 1.e+20f ;
                longitude:bounds = "vertices_longitude" ;
        float vertices_latitude(y, x, vertices) ;
                vertices_latitude:units = "degrees_north" ;
                vertices_latitude:missing_value = 1.e+20f ;
                vertices_latitude:_FillValue = 1.e+20f ;
        float vertices_longitude(y, x, vertices) ;
                vertices_longitude:units = "degrees_east" ;
                vertices_longitude:missing_value = 1.e+20f ;
                vertices_longitude:_FillValue = 1.e+20f ;
        float vo(time, lev, y, x) ;
                vo:standard_name = "sea_water_y_velocity" ;
                vo:long_name = "Sea Water Y Velocity" ;
                vo:comment = "Prognostic x-ward velocity component resolved by the model." ;
                vo:units = "m s-1" ;
                vo:original_name = "VO" ;
                vo:original_units = "cm/s" ;
                vo:history = "2019-07-16T13:40:11Z altered by CMOR: Converted units from \'cm/s\' to \'m s-1\'. 2019-07-16T13:40:11Z altered by CMOR: replaced missing value flag (-999) with standard missing value (1e+20)." ;
                vo:cell_methods = "time: mean" ;
                vo:missing_value = 1.e+20f ;
                vo:_FillValue = 1.e+20f ;
                vo:coordinates = "latitude longitude" ;

// global attributes:
                :Conventions = "CF-1.7 CMIP-6.2" ;
                :activity_id = "ScenarioMIP" ;
                :branch_method = "standard" ;
                :branch_time_in_child = 60265. ;
                :branch_time_in_parent = 60265. ;
                :creation_date = "2019-07-16T13:40:11Z" ;
                :data_specs_version = "01.00.28" ;
                :experiment = "update of RCP8.5 based on SSP5" ;
                :experiment_id = "ssp585" ;
                :forcing_index = 2 ;
                :frequency = "mon" ;
                :further_info_url = "https://furtherinfo.es-doc.org/CMIP6.MIROC.MIROC-ES2L.ssp585.none.r1i1p1f2" ;
                :grid = "native ocean tripolar grid with 360x256 cells" ;
                :grid_label = "gn" ;
                :history = "2019-07-16T13:40:11Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards." ;
                :initialization_index = 1 ;
                :institution = "JAMSTEC (Japan Agency for Marine-Earth Science and Technology, Kanagawa 236-0001, Japan), AORI (Atmosphere and Ocean Research Institute, The University of Tokyo, Chiba 277-8564, Japan), NIES (National Institute for Environmental Studies, Ibaraki 305-8506, Japan), and R-CCS (RIKEN Center for Computational Science, Hyogo 650-0047, Japan)" ;
                :institution_id = "MIROC" ;
                :mip_era = "CMIP6" ;
                :nominal_resolution = "100 km" ;
                :parent_activity_id = "CMIP" ;
                :parent_experiment_id = "historical" ;
                :parent_mip_era = "CMIP6" ;
                :parent_source_id = "MIROC-ES2L" ;
                :parent_time_units = "days since 1850-1-1" ;
                :parent_variant_label = "r1i1p1f2" ;
                :physics_index = 1 ;
                :product = "model-output" ;
                :realization_index = 1 ;
                :realm = "ocean" ;
                :source = "MIROC-ES2L (2018): \n",
                        "aerosol: SPRINTARS6.0\n",
                        "atmos: CCSR AGCM (T42; 128 x 64 longitude/latitude; 40 levels; top level 3 hPa)\n",
                        "atmosChem: none\n",
                        "land: MATSIRO6.0+VISIT-e ver.1.0\n",
                        "landIce: none\n",
                        "ocean: COCO4.9 (tripolar primarily 1deg; 360 x 256 longitude/latitude; 63 levels; top grid cell 0-2 m)\n",
                        "ocnBgchem: OECO ver.2.0; NPZD-type with C/N/P/Fe/O cycles\n",
                        "seaIce: COCO4.9" ;
                :source_id = "MIROC-ES2L" ;
                :source_type = "AOGCM AER BGC" ;
                :sub_experiment = "none" ;
                :sub_experiment_id = "none" ;
                :table_id = "Omon" ;
                :table_info = "Creation Date:(06 November 2018) MD5:0728c79344e0f262bb76e4f9ff0d9afc" ;
                :title = "MIROC-ES2L output prepared for CMIP6" ;
                :variable_id = "vo" ;
                :variant_label = "r1i1p1f2" ;
                :license = "CMIP6 model data produced by MIROC is licensed under a Creative Commons Attribution ShareAlike 4.0 International License (https://creativecommons.org/licenses/). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file). The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law." ;
                :cmor_version = "3.3.2" ;
                :tracking_id = "hdl:21.14100/2c9fd24a-f1e7-423d-b3e6-2a3976a58161" ;
}

--
albert.j.hermann@xxxxxxxx
Pacific Marine Environmental Laboratory
7600 Sand Point Way NE
Seattle WA 98115
206-526-6495

[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce / NOAA / OAR / PMEL / Ferret

Privacy Policy | Disclaimer | Accessibility Statement