All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ucar.nc2.iosp.netcdf4.Nc4 Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 1998-2018 John Caron and University Corporation for Atmospheric Research/Unidata
 * See LICENSE for license information.
 */

package ucar.nc2.iosp.netcdf4;

/**
 * Special netcdf-4 specific stuff. used by both Java (H5header) and JNA interface (Nc4Iosp)
 *
 * @author caron
 * @since 7/31/12
 *
 * see "http://www.unidata.ucar.edu/software/netcdf/docs/netcdf_4_spec.html"
 * @see "http://www.unidata.ucar.edu/software/netcdf/docs/"
 */
public class Nc4 {
  // special attribute names used by netcdf4 library
  static public final String NETCDF4_COORDINATES  = "_Netcdf4Coordinates"; // only on the multi-dimensional coordinate variables of the netCDF model (2D chars)
                                                                           // appears to hold the dimension ids of the 2 dimensions
  static public final String NETCDF4_DIMID  = "_Netcdf4Dimid"; // on dimension scales, holds a scalar H5T_NATIVE_INT which is the (zero-based) dimension ID for this dimension.
                                                               // used to maintain creation order
  static public final String NETCDF4_STRICT  = "_nc3_strict";  // global - when using classic model
  static public final String NETCDF4_NON_COORD  = "_nc4_non_coord_";  // appended to variable when it conflicts with dimension scale


}

/*

////////////////////////////////////////////////////////////////////////////////////////////////
  /* 6/21/2013 new algorithm for dimensions.

    1. find all objects with all CLASS = "DIMENSION_SCALE", make into a dimension. use shape(0) as length. keep in order
    2. if also a variable (NAME != "This is a ...") then first dim = itself, second matches length, if muiltiple match, use :_Netcdf4Coordinates = 0, 3 and order of dimensions.
    3. use DIMENSION_LIST to assign dimensions to other variables.

    Examples:

root  :_nc3_strict = 1
  :title = "INSITE traffic weighting"
  :institution = "Forecast Impact and Quality Assessment Section : GSD/ESRL/NOAA : http://esrl.noaa.gov/fiqas/"
  :source = "INSITE"
  :contact = "Jennifer Mahoney : [email protected]"
  :Conventions = "CF-1.4"
  :version = "FIQAS 1.1"

float weight(7,24,1209,);
  :long_name = "traffic weighting"
  :_FillValue = -1.0f
  :valid_range = 0.0f, 2500.0f
  :DIMENSION_LIST = "days", "hours", "jetways"

float max_weight(1209,);
  :long_name = "maximum traffic weighting for any day/hour"
  :_FillValue = -1.0f
  :valid_range = 0.0f, 2500.0f
  :DIMENSION_LIST = "jetways"

char jetways(1209,7,);
  :REFERENCE_LIST = null, null
  :CLASS = "DIMENSION_SCALE"
  :NAME = "jetways"
  :_Netcdf4Coordinates = 0, 3
  :long_name = "jetway segment identifier"

float hours(24,);
  :CLASS = "DIMENSION_SCALE"
  :NAME = "This is a netCDF dimension but not a netCDF variable.        24"
  :REFERENCE_LIST = null

float days(7,);
  :CLASS = "DIMENSION_SCALE"
  :NAME = "This is a netCDF dimension but not a netCDF variable.         7"
  :REFERENCE_LIST = null

float jetwaylen(7,);
  :CLASS = "DIMENSION_SCALE"
  :NAME = "This is a netCDF dimension but not a netCDF variable.         7"

////////////////////////////////////////
// example with unlimited dimensions
root
float time(0,);
  :REFERENCE_LIST = null
  :CLASS = "DIMENSION_SCALE"
  :NAME = "This is a netCDF dimension but not a netCDF variable.         0"

float lat(2,);
  :REFERENCE_LIST = null
  :CLASS = "DIMENSION_SCALE"
  :NAME = "This is a netCDF dimension but not a netCDF variable.         2"

float lon(3,);
  :REFERENCE_LIST = null
  :CLASS = "DIMENSION_SCALE"
  :NAME = "This is a netCDF dimension but not a netCDF variable.         3"

float surface_temperature(4,2,3,);
  :DIMENSION_LIST = "time", "lat", "lon"

*/




© 2015 - 2024 Weber Informatics LLC | Privacy Policy