ECC-1656: GRIB: Add keys isGridded and isSpectral (Part 01)

This commit is contained in:
Shahram Najm 2023-08-03 14:15:26 +00:00 committed by shahramn
parent 45fb40016d
commit 5ff27db808
19 changed files with 189 additions and 168 deletions

View File

@ -127,3 +127,5 @@ alias md5GridSection = md5Section3;
meta projSourceString proj_string(gridType, 0): hidden;
meta projTargetString proj_string(gridType, 1): hidden;
alias projString = projTargetString : hidden;
constant isSpectral = !isGridded : constraint;

View File

@ -3,6 +3,8 @@
# TEMPLATE 3.10, Mercator
include "grib2/template.3.shape_of_the_earth.def";
constant isGridded = one;
unsigned[4] Ni : dump;
alias numberOfPointsAlongAParallel=Ni;
alias Nx = Ni;

View File

@ -1,42 +1,43 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.100, Triangular grid based on an icosahedron (see Attachment I.2-GRIB-Att.)
constant isGridded = one;
# n2 - exponent of 2 for the number of intervals on main triangle sides
# n2 - exponent of 2 for the number of intervals on main triangle sides
unsigned[1] n2 : dump ;
# n3 - exponent of 3 for the number of intervals on main triangle sides
# n3 - exponent of 3 for the number of intervals on main triangle sides
unsigned[1] n3 : dump ;
# Ni - number of intervals on main triangle sides of the icosahedron
# Ni - number of intervals on main triangle sides of the icosahedron
unsigned[2] Ni : dump ;
# nd - Number of diamonds
# nd - Number of diamonds
unsigned[1] nd : dump ;
alias numberOfDiamonds=nd;
# Latitude of the pole point of the icosahedron on the sphere
# Latitude of the pole point of the icosahedron on the sphere
signed[4] latitudeOfThePolePoint : dump ;
meta geography.latitudeOfThePolePointInDegrees scale(latitudeOfThePolePoint,one,grib2divider,truncateDegrees) : dump;
# Longitude of the pole point of the icosahedron on the sphere
# Longitude of the pole point of the icosahedron on the sphere
unsigned[4] longitudeOfThePolePoint : dump ;
meta geography.longitudeOfThePolePointInDegrees g2lon(longitudeOfThePolePoint);
# Longitude of the centre line of the first diamond of the icosahedron on the sphere
# Longitude of the centre line of the first diamond of the icosahedron on the sphere
unsigned[4] longitudeOfFirstDiamondCentreLine : dump ;
meta geography.longitudeOfFirstDiamondCentreLineInDegrees g2lon(longitudeOfFirstDiamondCentreLine);
# Grid point position
# Grid point position
codetable[1] gridPointPosition ('3.8.table',masterDir,localDir);
# Numbering order of diamonds
# Numbering order of diamonds
flags[1] numberingOrderOfDiamonds 'grib2/tables/[tablesVersion]/3.9.table';
# Scanning mode for one diamond
# Scanning mode for one diamond
flags[1] scanningModeForOneDiamond 'grib2/tables/[tablesVersion]/3.10.table';
# nt - total number of grid points
# nt - total number of grid points
unsigned[4] totalNumberOfGridPoints : dump ;
alias nt = totalNumberOfGridPoints;

View File

@ -1,55 +1,54 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1000, Cross-section grid, with points equally spaced on the horizontal
include "grib2/template.3.shape_of_the_earth.def";
constant isGridded = one;
# Number of horizontal points
unsigned[4] numberOfHorizontalPoints : dump ;
# Number of horizontal points
unsigned[4] numberOfHorizontalPoints : dump ;
# Basic angle of the initial production domain
# Basic angle of the initial production domain
unsigned[4] basicAngleOfTheInitialProductionDomain = 0;
# Subdivisions of basic angle used to define extreme longitudes and latitudes
# Subdivisions of basic angle used to define extreme longitudes and latitudes
unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;;
# La1 - latitude of first grid point
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ;
alias La1 = latitudeOfFirstGridPoint;
# Lo1 - longitude of first grid point
alias La1 = latitudeOfFirstGridPoint;
# Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
alias Lo1 = longitudeOfFirstGridPoint;
alias Lo1 = longitudeOfFirstGridPoint;
include "grib2/template.3.scanning_mode.def";
# La2 - latitude of last grid point
# La2 - latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific;
alias La2 = latitudeOfLastGridPoint;
# Lo2 - longitude of last grid point
# Lo2 - longitude of last grid point
unsigned[4] longitudeOfLastGridPoint: edition_specific ;
alias Lo2 = longitudeOfLastGridPoint;
# Type of horizontal line
# Type of horizontal line
codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump ;
# Number of vertical points
unsigned[2] numberOfVerticalPoints : dump ;
# Number of vertical points
unsigned[2] numberOfVerticalPoints : dump ;
# Physical meaning of vertical coordinate
# Physical meaning of vertical coordinate
codetable[1] meaningOfVerticalCoordinate ('3.15.table',masterDir,localDir) : dump ;
# Vertical dimension coordinate values definition
# Vertical dimension coordinate values definition
codetable[1] verticalCoordinate ('3.21.table',masterDir,localDir) : dump ;
# NC - Number of coefficients or values used to specify vertical coordinates
unsigned[2] NC : dump ;
# NC - Number of coefficients or values used to specify vertical coordinates
unsigned[2] NC : dump ;
# Octets 67-(66+NC*4) : Coefficients to define vertical dimension coordinate values in functional form, or the explicit coordinate values
# (IEEE 32-bit floating-point values)
# ???? coefficients_to_define_vertical_dimension_coordinate_values_in_functional_form_or_the_explicit_coordinate_values
# ???? coefficients_to_define_vertical_dimension_coordinate_values_in_functional_form_or_the_explicit_coordinate_values

View File

@ -2,6 +2,8 @@
# TEMPLATE 3.101, General Unstructured Grid
constant isGridded = one;
codetable[1] shapeOfTheEarth ('3.2.table',masterDir,localDir) : dump;
unsigned[3] numberOfGridUsed : dump;

View File

@ -3,33 +3,35 @@
# TEMPLATE 3.110, Equatorial azimuthal equidistant projection
include "grib2/template.3.shape_of_the_earth.def";
# Nx - number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump ;
constant isGridded = one;
alias Nx = numberOfPointsAlongXAxis;
# Ny - number of points along Y-axis
unsigned[4] numberOfPointsAlongYAxis : dump ;
# Nx - number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump;
alias Ny = numberOfPointsAlongYAxis;
# La1 - latitude of tangency point
alias Nx = numberOfPointsAlongXAxis;
# Ny - number of points along Y-axis
unsigned[4] numberOfPointsAlongYAxis : dump;
alias Ny = numberOfPointsAlongYAxis;
# La1 - latitude of tangency point
# (centre of grid)
signed[4] latitudeOfTangencyPoint : dump ;
signed[4] latitudeOfTangencyPoint : dump;
alias La1 = latitudeOfTangencyPoint;
# Lo1 - longitude of tangency point
unsigned[4] longitudeOfTangencyPoint : dump ;
alias La1 = latitudeOfTangencyPoint;
# Lo1 - longitude of tangency point
unsigned[4] longitudeOfTangencyPoint : dump;
alias Lo1 = longitudeOfTangencyPoint;
# Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump ;
alias Lo1 = longitudeOfTangencyPoint;
# Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
# Dx - X-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dx : dump ;
# Dx - X-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dx : dump;
# Dy - Y-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dy : dump ;
# Dy - Y-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dy : dump;
# Projection centre flag
unsigned[1] projectionCentreFlag : dump ;
# Projection centre flag
unsigned[1] projectionCentreFlag : dump;
include "grib2/template.3.scanning_mode.def";

View File

@ -3,73 +3,63 @@
# TEMPLATE 3.1100, Hovmoller diagram grid with points equally spaced on the horizontal
include "grib2/template.3.shape_of_the_earth.def";
# Number of horizontal points
constant isGridded = one;
# Number of horizontal points
unsigned[5] numberOfHorizontalPoints : dump ;
# Basic angle of the initial production domain
# Basic angle of the initial production domain
unsigned[4] basicAngleOfTheInitialProductionDomain = 0 : dump ;
# Subdivisions of basic angle used to define extreme longitudes and latitudes
# Subdivisions of basic angle used to define extreme longitudes and latitudes
unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing,dump;
# La1 - latitude of first grid point
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific,dump;
alias La1 =latitudeOfFirstGridPoint;
# Lo1 - longitude of first grid point
# Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 =longitudeOfFirstGridPoint;
include "grib2/template.3.scanning_mode.def";
# La2 - latitude of last grid point
# La2 - latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific,dump;
alias La2 = latitudeOfLastGridPoint;
# Lo2 - longitude of last grid point
# Lo2 - longitude of last grid point
unsigned[4] longitudeOfLastGridPoint : edition_specific,dump ;
alias Lo2 = longitudeOfLastGridPoint;
# Type of horizontal line
# Type of horizontal line
codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump;
# NT - Number of time steps
# NT - Number of time steps
unsigned[4] numberOfTimeSteps : dump;
alias NT = numberOfTimeSteps;
# Unit of offset from reference time
# Unit of offset from reference time
codetable[1] unitOfOffsetFromReferenceTime ('4.4.table',masterDir,localDir) : dump;
# Offset from reference of first time
# Offset from reference of first time
# (negative value when first bit set)
unsigned[4] offsetFromReferenceOfFirstTime ;
# Type of time increment
# Type of time increment
codetable[1] typeOfTimeIncrement ('4.11.table',masterDir,localDir) : dump;
# Unit of time increment
# Unit of time increment
codetable[1] unitOfTimeIncrement ('4.4.table',masterDir,localDir) : dump;
# Time increment
# Time increment
# (negative value when first bit set)
unsigned[4] timeIncrement : dump ;
# Year
unsigned[2] year : dump;
# Month
unsigned[1] month : dump;
# Day
unsigned[1] day : dump;
# Hour
unsigned[1] hour : dump;
# Minute
unsigned[1] minute : dump;
# Second
unsigned[1] second : dump;

View File

@ -1,9 +1,10 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.12, Transverse Mercator
include "grib2/template.3.shape_of_the_earth.def";
constant isGridded = one;
unsigned[4] Ni : dump;
alias numberOfPointsAlongAParallel=Ni;
alias Nx = Ni;

View File

@ -1,34 +1,37 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.120, Azimuth-range projection
# Nb - number of data bins along radials (A data bin is a data point representing the volume centred on it)
unsigned[4] numberOfDataBinsAlongRadials ;
constant isGridded = one;
# Nb - number of data bins along radials (A data bin is a data point representing the volume centred on it)
unsigned[4] numberOfDataBinsAlongRadials;
alias Nb = numberOfDataBinsAlongRadials;
# Nr - number of radials
unsigned[4] numberOfRadials ;
# Nr - number of radials
unsigned[4] numberOfRadials;
alias Nr = numberOfRadials;
# La1 - latitude of centre point
signed[4] latitudeOfCentrePoint ;
# La1 - latitude of centre point
signed[4] latitudeOfCentrePoint;
alias La1 = latitudeOfCentrePoint;
meta geography.latitudeOfCentrePointInDegrees
scale(latitudeOfCentrePoint,one,grib2divider,truncateDegrees) : dump;
alias La1InDegrees=latitudeOfCentrePointInDegrees;
# Lo1 - longitude of centre point
unsigned[4] longitudeOfCentrePoint ;
# Lo1 - longitude of centre point
unsigned[4] longitudeOfCentrePoint;
alias Lo1 = longitudeOfCentrePoint;
meta geography.longitudeOfCentrePointInDegrees
scale(longitudeOfCentrePoint,one,grib2divider,truncateDegrees) : dump;
alias Lo1InDegrees=longitudeOfCentrePointInDegrees;
# Dx - spacing of bins along radials
unsigned[4] spacingOfBinsAlongRadials ;
# Dx - spacing of bins along radials
unsigned[4] spacingOfBinsAlongRadials;
alias Dx = spacingOfBinsAlongRadials;
# Dstart - offset from origin to inner bound
unsigned[4] offsetFromOriginToInnerBound ;
# Dstart - offset from origin to inner bound
unsigned[4] offsetFromOriginToInnerBound;
alias Dstart = offsetFromOriginToInnerBound;
include "grib2/template.3.scanning_mode.def";

View File

@ -1,6 +1,8 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1200, Time section grid
constant isGridded = one;
# NT - Number of time steps
unsigned[4] numberOfTimeSteps : dump;

View File

@ -1,6 +1,9 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.130, Irregular Latitude/longitude grid
constant isGridded = one;
# Note: This template is deprecated.
include "grib2/template.3.shape_of_the_earth.def";

View File

@ -3,49 +3,51 @@
# TEMPLATE 3.140, Lambert azimuthal equal area projection
include "grib2/template.3.shape_of_the_earth.def";
# Nx - number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump ;
constant isGridded = one;
# Nx - number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump;
alias Nx = numberOfPointsAlongXAxis;
alias Ni = Nx;
# Ny - number of points along Y-axis
unsigned[4] numberOfPointsAlongYAxis : dump ;
# Ny - number of points along Y-axis
unsigned[4] numberOfPointsAlongYAxis : dump;
alias Ny = numberOfPointsAlongYAxis;
alias Nj = Ny;
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint: edition_specific ;
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint: edition_specific;
alias La1 = latitudeOfFirstGridPoint;
meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint
,one,grib2divider,truncateDegrees) : dump;
meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint,
one,grib2divider,truncateDegrees) : dump;
#meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor): no_copy;
# Lo1 - longitude of first grid point
# Lo1 - longitude of first grid point
signed[4] longitudeOfFirstGridPoint: edition_specific ;
alias La1 = longitudeOfFirstGridPoint;
meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint
,one,grib2divider,truncateDegrees) : dump;
meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,
one,grib2divider,truncateDegrees) : dump;
#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor) : no_copy;
signed[4] standardParallelInMicrodegrees : dump;
signed[4] standardParallelInMicrodegrees : dump;
alias standardParallel=standardParallelInMicrodegrees;
meta geography.standardParallelInDegrees scale(standardParallelInMicrodegrees,one,grib2divider,truncateDegrees) : dump;
signed[4] centralLongitudeInMicrodegrees : dump;
signed[4] centralLongitudeInMicrodegrees : dump;
alias centralLongitude=centralLongitudeInMicrodegrees;
meta geography.centralLongitudeInDegrees scale(centralLongitudeInMicrodegrees,one,grib2divider,truncateDegrees) : dump;
# Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump ;
# Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
# Dx - X-direction grid length in millimetres
unsigned[4] xDirectionGridLengthInMillimetres : dump ;
alias Dx = xDirectionGridLengthInMillimetres ;
# Dx - X-direction grid length in millimetres
unsigned[4] xDirectionGridLengthInMillimetres: dump;
alias Dx = xDirectionGridLengthInMillimetres;
meta geography.xDirectionGridLengthInMetres scale(xDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump;
alias DxInMetres = xDirectionGridLengthInMetres;
# Dy - Y-direction grid length in millimetres
unsigned[4] yDirectionGridLengthInMillimetres : dump ;
# Dy - Y-direction grid length in millimetres
unsigned[4] yDirectionGridLengthInMillimetres : dump ;
alias Dy = yDirectionGridLengthInMillimetres ;
meta geography.yDirectionGridLengthInMetres scale(yDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump;
alias DyInMetres = yDirectionGridLengthInMetres;

View File

@ -3,57 +3,59 @@
# TEMPLATE 3.20, Polar stereographic projection
include "grib2/template.3.shape_of_the_earth.def";
# Nx - number of points along X-axis
constant isGridded = one;
# Nx - number of points along X-axis
unsigned[4] Nx : dump;
alias Ni = Nx;
alias numberOfPointsAlongXAxis = Nx;
alias geography.Nx=Nx;
# Ny - number of points along Y-axis
# Ny - number of points along Y-axis
unsigned[4] Ny : dump;
alias Nj = Ny;
alias numberOfPointsAlongYAxis = Ny;
alias geography.Ny=Ny;
# La1 - latitude of first grid point
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ;
meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
alias La1 = latitudeOfFirstGridPoint;
# Lo1 - longitude of first grid point
# Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
alias Lo1 = longitudeOfFirstGridPoint;
# Resolution and component flag
# Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
# LaD - Latitude where Dx and Dy are specified
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific;
alias latitudeWhereDxAndDyAreSpecified=LaD;
meta geography.LaDInDegrees scale(LaD,oneConstant,grib2divider,truncateDegrees) : dump;
alias latitudeWhereDxAndDyAreSpecifiedInDegrees=LaDInDegrees;
# LoV - orientation of the grid
# LoV is the longitude value of the meridian which is parallel to the y-axis (or columns of the grid)
# along which latitude increases as the y-coordinate increases
# LoV - orientation of the grid
# LoV is the longitude value of the meridian which is parallel to the y-axis (or columns of the grid)
# along which latitude increases as the y-coordinate increases
signed[4] orientationOfTheGrid : edition_specific;
alias LoV = orientationOfTheGrid ;
meta geography.orientationOfTheGridInDegrees scale(orientationOfTheGrid,oneConstant,grib2divider,truncateDegrees) : dump;
# Dx - X-direction grid length
# Grid length is in units of 10-3 m at the latitude specified by LaD
# Dx - X-direction grid length
# Grid length is in units of 10-3 m at the latitude specified by LaD
unsigned[4] Dx : edition_specific;
meta geography.DxInMetres scale(Dx,one,thousand,truncateDegrees) : dump;
alias xDirectionGridLength=Dx;
# Dy - Y-direction grid length
# Grid length is in units of 10-3 m at the latitude specified by LaD
# Dy - Y-direction grid length
# Grid length is in units of 10-3 m at the latitude specified by LaD
unsigned[4] Dy : edition_specific;
meta geography.DyInMetres scale(Dy,one,thousand,truncateDegrees) : dump;
alias yDirectionGridLength=Dy;
# Projection centre flag
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
# Note our flagbit numbers go from 7 to 0, while WMO convention is from 1 to 8
# If bit 1 is 0, then the North Pole is on the projection plane

View File

@ -3,27 +3,29 @@
# TEMPLATE 3.30, Lambert conformal
include "grib2/template.3.shape_of_the_earth.def";
unsigned[4] Nx : dump;
constant isGridded = one;
unsigned[4] Nx : dump;
alias Ni = Nx;
alias numberOfPointsAlongXAxis = Nx;
alias numberOfPointsAlongXAxis = Nx;
alias geography.Nx=Nx;
unsigned[4] Ny : dump;
alias Nj = Ny;
alias numberOfPointsAlongYAxis = Ny;
alias numberOfPointsAlongYAxis = Ny;
alias geography.Ny=Ny;
# La1 - latitude of first grid point
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific;
alias La1 = latitudeOfFirstGridPoint;
alias La1 = latitudeOfFirstGridPoint;
meta geography.latitudeOfFirstGridPointInDegrees
scale(latitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump;
alias La1InDegrees=latitudeOfFirstGridPointInDegrees;
#meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPointInDegrees,oneConstant): no_copy;
# Lo1 - longitude of first grid point
# Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
alias Lo1 = longitudeOfFirstGridPoint;
alias Lo1 = longitudeOfFirstGridPoint;
meta geography.longitudeOfFirstGridPointInDegrees
scale(longitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump;
alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees;
@ -31,48 +33,48 @@ alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees;
include "grib2/template.3.resolution_flags.def";
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific ;
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific;
alias latitudeWhereDxAndDyAreSpecified=LaD;
meta geography.LaDInDegrees scale(LaD,one,grib2divider,truncateDegrees) : dump;
# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases
# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases
unsigned[4] LoV : edition_specific;
meta geography.LoVInDegrees scale(LoV,one,grib2divider,truncateDegrees) : dump;
# Dx - X-direction grid length (in units of millimetres)
unsigned[4] Dx : edition_specific ;
# Dx - X-direction grid length (in units of millimetres)
unsigned[4] Dx : edition_specific;
alias xDirectionGridLength=Dx;
alias Di = Dx;
meta geography.DxInMetres scale(Dx,one,thousand) : dump;
# Dy - Y-direction grid length (in units of millimetres)
unsigned[4] Dy : edition_specific ;
alias yDirectionGridLength=Dy ;
# Dy - Y-direction grid length (in units of millimetres)
unsigned[4] Dy : edition_specific;
alias yDirectionGridLength=Dy;
alias Dj = Dy;
meta geography.DyInMetres scale(Dy,one,thousand) : dump;
# Projection centre flag
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
include "grib2/template.3.scanning_mode.def";
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 : edition_specific;
alias FirstLatitude=Latin1;
meta geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump;
# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin2 : dump;
alias SecondLatitude=Latin2;
meta geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump;
# Latitude of the southern pole of projection
# Latitude of the southern pole of projection
signed[4] latitudeOfSouthernPole : edition_specific;
alias latitudeOfTheSouthernPoleOfProjection=latitudeOfSouthernPole;
meta geography.latitudeOfSouthernPoleInDegrees scale(latitudeOfSouthernPole,one,grib2divider,truncateDegrees) : dump;
# Longitude of the southern pole of projection
# Longitude of the southern pole of projection
unsigned[4] longitudeOfSouthernPole : edition_specific;
alias longitudeOfTheSouthernPoleOfProjection=longitudeOfSouthernPole;
meta geography.longitudeOfSouthernPoleInDegrees scale(longitudeOfSouthernPole,oneConstant,grib2divider,truncateDegrees) : dump;

View File

@ -3,60 +3,61 @@
# TEMPLATE 3.31, Albers equal area
include "grib2/template.3.shape_of_the_earth.def";
# Nx - number of points along the X-axis
constant isGridded = one;
# Nx - number of points along the X-axis
unsigned[4] Nx : dump;
alias numberOfPointsAlongTheXAxis=Nx;
alias geography.Nx=Nx;
# Ny - number of points along the Y-axis
# Ny - number of points along the Y-axis
unsigned[4] Ny : dump;
alias numberOfPointsAlongTheYAxis=Ny;
alias geography.Ny=Ny;
# La1 - latitude of first grid point
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific,dump;
alias La1 = latitudeOfFirstGridPoint;
# Lo1 - longitude of first grid point
# Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 = longitudeOfFirstGridPoint;
include "grib2/template.3.resolution_flags.def";
# LaD - Latitude where Dx and Dy are specified
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : dump;
alias latitudeWhereDxAndDyAreSpecified=LaD ;
# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases
# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases
unsigned[4] LoV : dump;
# Dx - X-direction grid length
# Dx - X-direction grid length
unsigned[4] xDirectionGridLength : dump;
alias Dx = xDirectionGridLength;
# Dy - Y-direction grid length
# Dy - Y-direction grid length
unsigned[4] yDirectionGridLength : dump;
alias Dy = yDirectionGridLength;
# Projection centre flag
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
include "grib2/template.3.scanning_mode.def";
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 :edition_specific;
meta geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump;
# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
unsigned[4] Latin2 : edition_specific;
meta geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump;
# Latitude of the southern pole of projection
# Latitude of the southern pole of projection
signed[4] latitudeOfTheSouthernPoleOfProjection : edition_specific ;
alias latitudeOfSouthernPole=latitudeOfTheSouthernPoleOfProjection;
meta geography.latitudeOfSouthernPoleInDegrees scale(latitudeOfTheSouthernPoleOfProjection ,one,grib2divider,truncateDegrees) : dump;
# Longitude of the southern pole of projection
# Longitude of the southern pole of projection
unsigned[4] longitudeOfTheSouthernPoleOfProjection :edition_specific;
alias longitudeOfSouthernPole=longitudeOfTheSouthernPoleOfProjection;
meta geography.longitudeOfSouthernPoleInDegrees scale(longitudeOfTheSouthernPoleOfProjection,oneConstant,grib2divider,truncateDegrees) : dump;

View File

@ -3,6 +3,8 @@
# TEMPLATE 3.90, Space view perspective or orthographic
include "grib2/template.3.shape_of_the_earth.def";
constant isGridded = one;
unsigned[4] Nx : dump;
alias Ni = Nx;
alias numberOfPointsAlongXAxis = Nx;
@ -13,10 +15,10 @@ alias Nj = Ny;
alias numberOfPointsAlongYAxis = Ny;
alias geography.Ny=Ny;
# Lap - latitude of sub-satellite point
# Lap - latitude of sub-satellite point
signed[4] latitudeOfSubSatellitePoint;
# Lop - longitude of sub-satellite point
# Lop - longitude of sub-satellite point
signed[4] longitudeOfSubSatellitePoint;
meta geography.latitudeOfSubSatellitePointInDegrees scale(latitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump;
@ -24,21 +26,21 @@ meta geography.longitudeOfSubSatellitePointInDegrees scale(longitudeOfSubSatel
include "grib2/template.3.resolution_flags.def";
# dx - apparent diameter of Earth in grid lengths, in X-direction
# dx - apparent diameter of Earth in grid lengths, in X-direction
unsigned[4] dx : dump;
alias geography.dx=dx;
# dy - apparent diameter of Earth in grid lengths, in Y-direction
# dy - apparent diameter of Earth in grid lengths, in Y-direction
unsigned[4] dy : dump;
alias geography.dy=dy;
# Xp - X-coordinate of sub-satellite point
# Xp - X-coordinate of sub-satellite point
# (in units of 10^-3 grid length expressed as an integer)
unsigned[4] Xp : no_copy;
meta geography.XpInGridLengths scale(Xp,one,thousand) : dump;
alias xCoordinateOfSubSatellitePoint=XpInGridLengths;
# Yp - Y-coordinate of sub-satellite point
# Yp - Y-coordinate of sub-satellite point
# (in units of 10^-3 grid length expressed as an integer)
unsigned[4] Yp : no_copy;
meta geography.YpInGridLengths scale(Yp,one,thousand) : dump;
@ -46,25 +48,25 @@ alias yCoordinateOfSubSatellitePoint=YpInGridLengths;
include "grib2/template.3.scanning_mode.def";
# Orientation of the grid; i.e. the angle between the increasing Y-axis and the meridian
# Orientation of the grid; i.e. the angle between the increasing Y-axis and the meridian
# of the sub-satellite point in the direction of increasing latitude
signed[4] orientationOfTheGrid : edition_specific;
meta geography.orientationOfTheGridInDegrees
scale(orientationOfTheGrid,oneConstant,grib2divider,truncateDegrees) : dump;
# Nr - altitude of the camera from the Earth's centre, measured in units of the Earth's
# Nr - altitude of the camera from the Earth's centre, measured in units of the Earth's
# (equatorial) radius multiplied by a scale factor of 10^6
unsigned[4] Nr : edition_specific,can_be_missing,no_copy;
alias altitudeOfTheCameraFromTheEarthsCentreMeasuredInUnitsOfTheEarthsRadius = Nr;
meta geography.NrInRadiusOfEarth scale(Nr,oneConstant,oneMillionConstant,truncateDegrees) : dump;
alias NrInRadiusOfEarthScaled=NrInRadiusOfEarth;
# Xo - X-coordinate of origin of sector image
# Xo - X-coordinate of origin of sector image
unsigned[4] Xo : dump;
alias xCoordinateOfOriginOfSectorImage=Xo;
alias geography.Xo=Xo;
# Yo - Y-coordinate of origin of sector image
# Yo - Y-coordinate of origin of sector image
unsigned[4] Yo : dump;
alias yCoordinateOfOriginOfSectorImage=Yo;
alias geography.Yo=Yo;

View File

@ -1,5 +1,6 @@
label "BiFourier coefficients";
constant biFourierCoefficients=1;
constant isGridded = one;
codetable[1] spectralType ('3.6.table',masterDir,localDir) = 2 : no_copy;
alias spectralDataRepresentationType=spectralType;

View File

@ -1,5 +1,7 @@
# (C) Copyright 2005- ECMWF.
constant isGridded = one;
unsigned[4] Ni : can_be_missing,dump;
alias numberOfPointsAlongAParallel=Ni;
alias Nx = Ni;

View File

@ -26,3 +26,5 @@ alias spectralDataRepresentationType=spectralType;
# Representation mode indicating the order of the coefficients
codetable[1] spectralMode ('3.7.table',masterDir,localDir) = 1 : no_copy;
alias spectralDataRepresentationMode=spectralMode;
constant isGridded = zero;