eccodes-data-grib1
Version:
GRIB1 format data for eccodes-lib
97 lines (79 loc) • 3.94 kB
Plain Text
unsigned[2] Ni : can_be_missing,dump;
alias numberOfPointsAlongAParallel= Ni ;
alias Nx =Ni;
signed[2] Nj : dump;
alias numberOfPointsAlongAMeridian=Nj;
alias Ny=Nj;
include "grib1/grid_first_last_resandcomp.def";
unsigned[2] iDirectionIncrement : can_be_missing,dump,edition_specific;
meta geography.iDirectionIncrementInDegrees scale(iDirectionIncrement,oneConstant,grib1divider,truncateDegrees) : can_be_missing,dump;
alias Di = iDirectionIncrement;
unsigned[2] N : dump ;
alias numberOfParallelsBetweenAPoleAndTheEquator=N;
alias geography.N=N;
alias yFirst=latitudeOfFirstGridPointInDegrees;
alias yLast=latitudeOfLastGridPointInDegrees;
alias xFirst=longitudeOfFirstGridPointInDegrees;
alias xLast=longitudeOfLastGridPointInDegrees;
include "grib1/scanning_mode.def";
pad padding_grid4_1(4);
alias latitudeFirstInDegrees = latitudeOfFirstGridPointInDegrees;
alias longitudeFirstInDegrees = longitudeOfFirstGridPointInDegrees;
alias latitudeLastInDegrees = latitudeOfLastGridPointInDegrees;
alias longitudeLastInDegrees = longitudeOfLastGridPointInDegrees;
alias DiInDegrees = iDirectionIncrementInDegrees;
meta global global_gaussian(N,Ni,iDirectionIncrement,
latitudeOfFirstGridPoint,
longitudeOfFirstGridPoint,
latitudeOfLastGridPoint,
longitudeOfLastGridPoint,
PLPresent,pl) = 0 : dump;
meta numberOfDataPoints number_of_points_gaussian(Ni,Nj,PLPresent,pl,
N,
latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
latitudeOfLastGridPointInDegrees,longitudeOfLastGridPointInDegrees) : dump;
alias numberOfPoints=numberOfDataPoints;
meta numberOfValues number_of_values(values,bitsPerValue,numberOfDataPoints,bitmapPresent,bitmap,numberOfCodedValues) : dump;
if(missing(Ni)){
iterator gaussian_reduced(numberOfPoints,missingValue,values,
latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
latitudeOfLastGridPointInDegrees,longitudeOfLastGridPointInDegrees,
N,pl,Nj);
nearest reduced(values,radius,Nj,pl);
box reduced_gaussian(latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
latitudeOfLastGridPointInDegrees,longitudeOfLastGridPointInDegrees,
N,pl);
} else {
iterator gaussian(numberOfPoints,missingValue,values,longitudeFirstInDegrees,
DiInDegrees ,Ni,Nj,iScansNegatively ,
latitudeFirstInDegrees, latitudeLastInDegrees,
N,jScansPositively);
nearest regular(values,radius,Ni,Nj);
}
meta latLonValues latlonvalues(values);
alias latitudeLongitudeValues=latLonValues;
meta latitudes latitudes(values,0);
meta longitudes longitudes(values,0);
meta distinctLatitudes latitudes(values,1);
meta distinctLongitudes longitudes(values,1);
meta isOctahedral octahedral_gaussian(N, Ni, PLPresent, pl) = 0 : no_copy,dump;
meta gaussianGridName gaussian_grid_name(N, Ni, isOctahedral);
alias gridName=gaussianGridName;