Merge branch 'develop' into feature/ECC-1620_sub-hourly

This commit is contained in:
Shahram Najm 2023-12-02 17:48:34 +00:00
commit 6d4227638f
37 changed files with 484 additions and 384 deletions

View File

@ -143,4 +143,11 @@
289 289 Zambia (NMC)
291 anso Alliance of International Science Organizations (Beijing, China)
292 ufz Helmholtz Centre for Environmental Research
293 293 University of Bremen
294 294 Netherlands Institute for Space Research (SRON)
295 295 The Royal Belgian Institute for Space Aeronomy (BIRA-IASB)
296 296 The French National Centre for Scientific Research (CNRS)
297 297 The Nanjing Institute of Environmental Sciences (NIES)
298 298 Dynamic Meteorology Laboratory (LMD)
299 299 The Rutherford Appleton Laboratory (RAL)
65535 65535 Missing value

View File

@ -104,6 +104,15 @@ sub WriteFile {
elsif ($filename eq "4.5.table") {
$codeFlag2 = TranslateCodes_Table_4_5($codeFlag);
}
elsif ($filename eq "4.241.table") {
$codeFlag2 = TranslateCodes_Table_4_241($codeFlag);
}
elsif ($filename eq "4.242.table") {
$codeFlag2 = TranslateCodes_Table_4_242($codeFlag);
}
elsif ($filename eq "4.252.table") {
$codeFlag2 = TranslateCodes_Table_4_252($codeFlag);
}
elsif ($filename eq "3.15.table") {
$codeFlag2 = TranslateCodes_Table_3_15($codeFlag);
}
@ -153,8 +162,6 @@ sub TranslateCodes_Table_3_15 {
return $code;
}
###################################################################################################
# This is for Code Table 1.4
sub TranslateCodes_Table_1_4 {
my ($code) = @_;
return "an" if ($code eq "0");
@ -170,7 +177,6 @@ sub TranslateCodes_Table_1_4 {
return $code;
}
###################################################################################################
sub TranslateCodes_Table_4_4 {
my ($code) = @_;
return "m" if ($code eq "0");
@ -188,7 +194,6 @@ sub TranslateCodes_Table_4_4 {
return $code;
}
###################################################################################################
sub TranslateCodes_Table_4_5 {
my ($code) = @_;
return "sfc" if ($code eq "1" || $code eq "7" ||
@ -207,3 +212,181 @@ sub TranslateCodes_Table_4_5 {
return "sol" if ($code eq "152");
return $code;
}
sub TranslateCodes_Table_4_241 {
my ($code) = @_;
return "UNDEF" if ($code eq "0");
return "UNMOD" if ($code eq "1");
return "SNOW" if ($code eq "2");
return "FLOOD" if ($code eq "3");
return "ICE" if ($code eq "4");
return "ITCW" if ($code eq "5");
return "ITCS" if ($code eq "6");
return "AGG" if ($code eq "7");
return $code;
}
sub TranslateCodes_Table_4_242 {
my ($code) = @_;
return "GCV2009" if ($code eq "1");
return "GLC2000" if ($code eq "2");
return "ECOCLIMAP" if ($code eq "3");
return "ECOCLIMAP-SG" if ($code eq "4");
return "GLCCv2BATS" if ($code eq "5");
return $code;
}
sub TranslateCodes_Table_4_252 {
my ($code) = @_;
return "SEOC" if ($code eq "1");
return "INWB" if ($code eq "2");
return "BARE" if ($code eq "3");
return "HIV" if ($code eq "4");
return "LOV" if ($code eq "5");
return "URBAN" if ($code eq "6");
return "SEAO" if ($code eq "1001");
return "LAKE" if ($code eq "1002");
return "RIVE" if ($code eq "1003");
return "NO" if ($code eq "1004");
return "ROCK" if ($code eq "1005");
return "SNOW" if ($code eq "1006");
return "BOBD" if ($code eq "1007");
return "TEBD" if ($code eq "1008");
return "TRBD" if ($code eq "1009");
return "TEBE" if ($code eq "1010");
return "TRBE" if ($code eq "1011");
return "BONE" if ($code eq "1012");
return "TENE" if ($code eq "1013");
return "BOND" if ($code eq "1014");
return "SHRB" if ($code eq "1015");
return "BOGR" if ($code eq "1016");
return "GRAS" if ($code eq "1017");
return "TROG" if ($code eq "1018");
return "C3W" if ($code eq "1019");
return "C3S" if ($code eq "1020");
return "C4" if ($code eq "1021");
return "FLTR" if ($code eq "1022");
return "FLGR" if ($code eq "1023");
return "LCZ1" if ($code eq "1024");
return "LCZ2" if ($code eq "1025");
return "LCZ3" if ($code eq "1026");
return "LCZ4" if ($code eq "1027");
return "LCZ5" if ($code eq "1028");
return "LCZ6" if ($code eq "1029");
return "LCZ7" if ($code eq "1030");
return "LCZ8" if ($code eq "1031");
return "LCZ9" if ($code eq "1032");
return "LCZ10" if ($code eq "1033");
return "TEBDU" if ($code eq "1034");
return "TRBDU" if ($code eq "1035");
return "TEBEU" if ($code eq "1036");
return "TRBEU" if ($code eq "1037");
return "BONEU" if ($code eq "1038");
return "TENEU" if ($code eq "1039");
return "BONDU" if ($code eq "1040");
return "GNATU" if ($code eq "1501");
return "GNOFO" if ($code eq "1502");
return "GFORE" if ($code eq "1503");
return "GNOVE" if ($code eq "1504");
return "GTREE" if ($code eq "1505");
return "GLVEG" if ($code eq "1506");
return "GNFLV" if ($code eq "1507");
return "GCROP" if ($code eq "1508");
return "GGRAS" if ($code eq "1509");
return "GBARO" if ($code eq "1510");
return "GC3CR" if ($code eq "1511");
return "GBFOR" if ($code eq "1512");
return "GNFOR" if ($code eq "1513");
return "GDBFO" if ($code eq "1514");
return "GTGRA" if ($code eq "1515");
return "GNFNF" if ($code eq "1516");
return "GBFFT" if ($code eq "1517");
return "GBTRE" if ($code eq "1518");
return "GCGRA" if ($code eq "1519");
return "GBDTR" if ($code eq "1520");
return "GBETR" if ($code eq "1521");
return "GNETR" if ($code eq "1522");
return "GLCZU" if ($code eq "1523");
return "GIWAT" if ($code eq "1524");
return "GPTEBD" if ($code eq "1525");
return "GPTRBD" if ($code eq "1526");
return "GPTEBE" if ($code eq "1527");
return "GPTRBE" if ($code eq "1528");
return "GPBONE" if ($code eq "1529");
return "GPTENE" if ($code eq "1530");
return "GPBOND" if ($code eq "1531");
return "CRMF" if ($code eq "2001");
return "SHGR" if ($code eq "2002");
return "EVNE" if ($code eq "2003");
return "DENE" if ($code eq "2004");
return "DEBR" if ($code eq "2005");
return "EVBR" if ($code eq "2006");
return "TAGR" if ($code eq "2007");
return "DESE" if ($code eq "2008");
return "TUND" if ($code eq "2009");
return "IRCR" if ($code eq "2010");
return "SEDE" if ($code eq "2011");
return "ICGL" if ($code eq "2012");
return "BOMA" if ($code eq "2013");
return "INWA" if ($code eq "2014");
return "OCEA" if ($code eq "2015");
return "EVSH" if ($code eq "2016");
return "DESH" if ($code eq "2017");
return "MFWO" if ($code eq "2018");
return "INFO" if ($code eq "2019");
return "WLMI" if ($code eq "2020");
return "BASO" if ($code eq "2021");
return "URBA" if ($code eq "2022");
return "LORI" if ($code eq "2023");
return "HIRI" if ($code eq "2024");
return "GLVE" if ($code eq "2501");
return "GHVE" if ($code eq "2502");
return "PFIC" if ($code eq "3001");
return "RACR" if ($code eq "3002");
return "MCVE" if ($code eq "3003");
return "MVCR" if ($code eq "3004");
return "COBS" if ($code eq "3005");
return "CLBD" if ($code eq "3006");
return "OPBD" if ($code eq "3007");
return "CLNE" if ($code eq "3008");
return "ONDE" if ($code eq "3009");
return "COBN" if ($code eq "3010");
return "MFSG" if ($code eq "3011");
return "MGFS" if ($code eq "3012");
return "COSH" if ($code eq "3013");
return "COHV" if ($code eq "3014");
return "SPVE" if ($code eq "3015");
return "COBFF" if ($code eq "3016");
return "CLBFF" if ($code eq "3017");
return "COVEF" if ($code eq "3018");
return "ASAA" if ($code eq "3019");
return "BAAR" if ($code eq "3020");
return "WABO" if ($code eq "3021");
return "PESI" if ($code eq "3022");
return "GRDT" if ($code eq "3501");
return "TBECO" if ($code eq "4001");
return "TBDC" if ($code eq "4002");
return "TBDO" if ($code eq "4003");
return "TNECO" if ($code eq "4004");
return "TNDCO" if ($code eq "4005");
return "TMLCO" if ($code eq "4006");
return "TCOFF" if ($code eq "4007");
return "TCOFS" if ($code eq "4008");
return "MTVG" if ($code eq "4009");
return "TBURN" if ($code eq "4010");
return "SCOE" if ($code eq "4011");
return "SCOD" if ($code eq "4012");
return "HCCO" if ($code eq "4013");
return "SHSC" if ($code eq "4014");
return "FSHCO" if ($code eq "4015");
return "CROP" if ($code eq "4016");
return "MCTNV" if ($code eq "4017");
return "MCSH" if ($code eq "4018");
return "BAARE" if ($code eq "4019");
return "WBNA" if ($code eq "4020");
return "SINA" if ($code eq "4021");
return "URAR" if ($code eq "4022");
return $code;
}

View File

@ -1,5 +1,3 @@
#! ---------------------------
#!
#!Description Octet Code Ksec1 Count
#!----------- ----- ----- ----- -----
#!
@ -15,16 +13,11 @@
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 13 May 2013
#
#######################
### LOCAL SECTION 0 ###
#######################
#
# This piece of definition is common to all SMHI definitions
# It is only accessed through "include" statement inside local.82.x.def
#
codetable[1] marsClass "mars/eswi/class.table" : dump,lowercase;
codetable[1] marsType "mars/eswi/type.table" : dump,lowercase,string_type;
codetable[2] marsStream "mars/eswi/stream.table" : dump,lowercase,string_type;
@ -36,4 +29,3 @@ ksec1expver[4] experimentVersionNumber = "0000" : dump;
pad reservedNeedNotBePresent(2);
codetable[1] marsModel "mars/eswi/model.table" : dump,lowercase,string_type;

View File

@ -1,13 +1,7 @@
#########################
#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 20 Feb 2014
#
########################
### LOCAL SECTION 82 ###
########################
constant GRIBEXSection1Problem = 53 - section1Length;
# base local definition
@ -15,4 +9,3 @@ include "grib1/local.82.0.def";
unsigned[1] marsExperimentOffset = 0 : dump, long_type;

View File

@ -21,15 +21,13 @@
#MeanSize 70-71 I2 57 -
#StandardDeviation 72-73 I2 58 -
#PartDef 74 PAD n/a 7
################################################################
##########################################################
#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 20 Feb 2014
#
#########################
### LOCAL SECTION 83 ###
#########################
constant GRIBEXSection1Problem = 80 - section1Length;
@ -53,4 +51,3 @@ unsigned[2] meanSize : dump;
unsigned[2] standardDeviation : dump;
pad padding_local1_1(7);

View File

@ -2,25 +2,13 @@
# Definition for SMHI Swedish Meteorological and Hydrological Institut.
#
# contact: sebastien.villaume@smhi.se
#
########################
### LOCAL DEFINITION ###
########################
codetable[1] localDefinitionNumber 'grib1/localDefinitionNumber.82.table' = 82 : dump;
template localDefinition "grib1/local.82.[localDefinitionNumber:l].def";
###################
### LS LABELING ###
###################
template ls_labeling "grib1/ls_labeling.82.def";
#####################
### MARS LABELING ###
#####################
template mars_labeling "grib1/mars_labeling.82.def";
template_nofail marsKeywords "mars/eswi/grib1.[stream:s].[type:s].def";

View File

@ -1,9 +1,6 @@
#########################
#
# author: Sebastien Villaume
# created: 13 May 2013
#
#########################
"none"={matchAerosolBinNumber=0;}
"bin1"={matchAerosolBinNumber=1;}
"bin2"={matchAerosolBinNumber=2;}

View File

@ -1,9 +1,6 @@
#########################
#
# author: Sebastien Villaume
# created: 13 May 2013
#
#########################
"none"={matchSort=0;}
"cm"={matchSort=1;}
"lncm"={matchSort=2;}

View File

@ -1,9 +1,6 @@
#########################
#
# author: Sebastien Villaume
# created: 13 May 2013
#
#########################
"none"={matchTimeRepres=0;}
"3hMean"={matchTimeRepres=1;}
"diurnalMean"={matchTimeRepres=2;}

View File

@ -1,10 +1,7 @@
#########################
#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 13 May 2013
#
#########################
'surface' = {indicatorOfTypeOfLevel=1;}
'cloudBase' = {indicatorOfTypeOfLevel=2;}
'cloudTop' = {indicatorOfTypeOfLevel=3;}

View File

@ -1,10 +1,7 @@
#########################
#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 13 May 2013
#
#########################
82 82 standard operational SMHI
83 83 MATCH data (standard operational SMHI + extra MATCH keywords)
255 255 MISSING

View File

@ -1,10 +1,7 @@
#########################
#
# author: Sebastien Villaume
# created: 6 Oct 2011
# modified: 13 Sep 2013
#
#########################
alias ls.dataType = marsType;
@ -14,6 +11,5 @@ if (localDefinitionNumber == 83 ) {
concept_nofail ls.sort (unknown,"sortConcept.def",conceptsLocalDirAll,conceptsMasterDir);
concept_nofail ls.landtype (unknown,"landTypeConcept.def",conceptsLocalDirAll,conceptsMasterDir);
concept_nofail ls.aerosolbinnumber (unknown,"aerosolConcept.def",conceptsLocalDirAll,conceptsMasterDir);
}

View File

@ -1,4 +1,3 @@
#########################
# author: Sebastien Villaume (SMHI)
# created: 6 Oct 2011
# modified: 13 Sep 2013
@ -8,7 +7,6 @@ constant conceptsMasterMarsDir="mars" : hidden;
constant conceptsLocalMarsDirAll="mars/[centre:s]" : hidden;
# Base MARS keywors
##########################
alias mars.class = marsClass;
alias mars.type = marsType;
alias mars.stream = marsStream;
@ -17,11 +15,9 @@ alias mars.expver = experimentVersionNumber;
alias mars.domain = globalDomain;
# local section 82
#########################
### nothing needed here...
# Local section 83
#########################
if ( localDefinitionNumber == 83 ) {
alias mars.sort = matchSort;
alias mars.timerepres = matchTimeRepres;

View File

@ -1,12 +1,6 @@
#########################
#
# author: Sebastien Villaume
# created: 14 Feb 2014
#
#################################
### LOCAL SECTION DESCRIPTION ###
#################################
#
# This piece of definition is common to all SMHI definitions
# It is only accessed through "include" statement inside local.82.x.def
@ -15,13 +9,11 @@
codetable[1] marsClass "mars/eswi/class.table" : dump,lowercase;
codetable[1] marsType "mars/eswi/type.table" : dump,lowercase,string_type;
codetable[2] marsStream "mars/eswi/stream.table" : dump,lowercase,string_type;
ksec1expver[4] experimentVersionNumber = "0000" : dump;
ksec1expver[4] experimentVersionNumber = "0000" : dump;
# For now, Ensemble stuff is desactivated because it is not used yet
# instead we use a padding of 2
#unsigned[1] perturbationNumber : dump;
#unsigned[1] numberOfForecastsInEnsemble : dump;
#unsigned[1] perturbationNumber : dump;
#unsigned[1] numberOfForecastsInEnsemble : dump;
pad reservedNeedNotBePresent(2);
codetable[1] marsModel "mars/eswi/model.table" : dump,lowercase,string_type;

View File

@ -1,15 +1,9 @@
#########################
#
# author: Sebastien Villaume
# created: 14 Feb 2014
#
#################################
### LOCAL SECTION DESCRIPTION ###
#################################
# base local definition
include "grib2/local.82.0.def";
unsigned[1] marsExperimentOffset = 0 : dump, long_type;

View File

@ -1,21 +1,14 @@
#################################################
#
# author: Sebastien Villaume
# created: 14 Feb 2014
#
#################################
### LOCAL SECTION DESCRIPTION ###
#################################
# base file: contains keywords always present
include "grib2/local.82.0.def";
# extra keywords specific to local definition 83 (MATCH)
codetable[1] matchSort "grib1/localConcepts/eswi/sort.table" : dump,long_type;
codetable[1] matchTimeRepres "grib1/localConcepts/eswi/timerepres.table" : dump,long_type;
codetable[1] matchLandType "grib1/localConcepts/eswi/landtype.table" : dump,long_type;
codetable[2] matchAerosolBinNumber "grib1/localConcepts/eswi/aerosolbinnumber.table" : dump,long_type;
unsigned[2] meanSize : dump;
codetable[1] matchSort "grib1/localConcepts/eswi/sort.table" : dump,long_type;
codetable[1] matchTimeRepres "grib1/localConcepts/eswi/timerepres.table" : dump,long_type;
codetable[1] matchLandType "grib1/localConcepts/eswi/landtype.table" : dump,long_type;
codetable[2] matchAerosolBinNumber "grib1/localConcepts/eswi/aerosolbinnumber.table" : dump,long_type;
unsigned[2] meanSize : dump;

View File

@ -3,20 +3,12 @@
alias localDefinitionNumber=grib2LocalSectionNumber;
template localSection "grib2/local.[centreForLocal:l].[grib2LocalSectionNumber:l].def";
#####################
### MARS LABELING ###
#####################
template mars_labeling "grib2/mars_labeling.82.def";
template_nofail marsKeywords "mars/eswi/grib2.[stream:s].[type:s].def";
###################
### LS LABELING ###
###################
template ls_labeling "grib2/ls_labeling.82.def";
position offsetAfterLocalSection;

View File

@ -1,22 +1,16 @@
#########################
#
# author: Sebastien Villaume
# created: 14 Feb 2014
#
#########################
constant g1conceptsMasterDir="grib1" : hidden;
constant g1conceptsLocalDirAll="grib1/localConcepts/[centre:s]" : hidden;
alias ls.dataType = marsType;
if (localDefinitionNumber == 83 ) {
concept_nofail ls.timerepres (unknown,"timeRepresConcept.def",g1conceptsLocalDirAll,g1conceptsMasterDir);
concept_nofail ls.sort (unknown,"sortConcept.def",g1conceptsLocalDirAll,g1conceptsMasterDir);
concept_nofail ls.landtype (unknown,"landTypeConcept.def",g1conceptsLocalDirAll,g1conceptsMasterDir);
concept_nofail ls.aerosolbinnumber (unknown,"aerosolConcept.def",g1conceptsLocalDirAll,g1conceptsMasterDir);
}

View File

@ -4,10 +4,7 @@
constant conceptsMasterMarsDir="mars" : hidden;
constant conceptsLocalMarsDirAll="mars/[centre:s]" : hidden;
##########################
# Base MARS keywors #
##########################
alias mars.class = marsClass;
alias mars.type = marsType;
alias mars.stream = marsStream;
@ -15,15 +12,10 @@ alias mars.model = marsModel;
alias mars.expver = experimentVersionNumber;
alias mars.domain = globalDomain;
#########################
# local section 82 #
#########################
### nothing needed here...
#########################
# local section 83 #
#########################
if ( localDefinitionNumber == 83 ) {
alias mars.sort = matchSort;
alias mars.timerepres = matchTimeRepres;

View File

@ -19,16 +19,15 @@ alias Nj = Ny;
# 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
signed[4] longitudeOfFirstGridPoint: edition_specific ;
alias La1 = longitudeOfFirstGridPoint;
meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,
one,grib2divider,truncateDegrees) : dump;
#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor) : no_copy;
meta geography.longitudeOfFirstGridPointInDegrees scale(
longitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump;
signed[4] standardParallelInMicrodegrees : dump;
alias standardParallel=standardParallelInMicrodegrees;
@ -55,13 +54,14 @@ alias DyInMetres = yDirectionGridLengthInMetres;
include "grib2/template.3.scanning_mode.def";
iterator lambert_azimuthal_equal_area(numberOfPoints,missingValue,values,
radius,Nx,Ny,
latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
standardParallelInDegrees,centralLongitudeInDegrees,
Dx,Dy,
iScansNegatively, jScansPositively,
jPointsAreConsecutive, alternativeRowScanning);
iterator lambert_azimuthal_equal_area(
numberOfPoints,missingValue,values,
radius,Nx,Ny,
latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
standardParallelInDegrees,centralLongitudeInDegrees,
Dx,Dy,
iScansNegatively, jScansPositively,
jPointsAreConsecutive, alternativeRowScanning);
nearest lambert_azimuthal_equal_area(values,radius,Nx,Ny);

View File

@ -24,22 +24,24 @@ meta g2grid g2grid(
null,
basicAngleOfTheInitialProductionDomain,
subdivisionsOfBasicAngle
);
);
meta geography.latitudeOfFirstGridPointInDegrees g2latlon(g2grid,0) : dump;
meta geography.longitudeOfFirstGridPointInDegrees g2latlon(g2grid,1) : dump;
meta geography.latitudeOfLastGridPointInDegrees g2latlon(g2grid,2) : dump;
meta geography.longitudeOfLastGridPointInDegrees g2latlon(g2grid,3) : dump;
meta geography.iDirectionIncrementInDegrees g2latlon(g2grid,4,iDirectionIncrementGiven) : can_be_missing,dump;
meta geography.latitudeOfFirstGridPointInDegrees g2latlon(g2grid,0) : dump;
meta geography.longitudeOfFirstGridPointInDegrees g2latlon(g2grid,1) : dump;
meta geography.latitudeOfLastGridPointInDegrees g2latlon(g2grid,2) : dump;
meta geography.longitudeOfLastGridPointInDegrees g2latlon(g2grid,3) : dump;
meta geography.iDirectionIncrementInDegrees g2latlon(g2grid,4,iDirectionIncrementGiven) : can_be_missing,dump;
meta global global_gaussian(N,Ni,iDirectionIncrement,
latitudeOfFirstGridPoint,
longitudeOfFirstGridPoint,
latitudeOfLastGridPoint,
longitudeOfLastGridPoint,
PLPresent, pl,
basicAngleOfTheInitialProductionDomain,
subdivisionsOfBasicAngle) = 0 : dump;
meta global global_gaussian(
N,Ni,iDirectionIncrement,
latitudeOfFirstGridPoint,
longitudeOfFirstGridPoint,
latitudeOfLastGridPoint,
longitudeOfLastGridPoint,
PLPresent, pl,
basicAngleOfTheInitialProductionDomain,
subdivisionsOfBasicAngle
) = 0 : dump;
alias xFirst=longitudeOfFirstGridPointInDegrees;
alias yFirst=latitudeOfFirstGridPointInDegrees;
@ -52,22 +54,22 @@ alias latitudeLastInDegrees = latitudeOfLastGridPointInDegrees;
alias longitudeLastInDegrees = longitudeOfLastGridPointInDegrees;
alias DiInDegrees = iDirectionIncrementInDegrees;
if(missing(Ni) && PLPresent == 1){
if (missing(Ni) && PLPresent == 1) {
iterator gaussian_reduced(numberOfPoints,missingValue,values,
latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
latitudeOfLastGridPointInDegrees,longitudeOfLastGridPointInDegrees,
N,pl,Nj);
latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees,
latitudeOfLastGridPointInDegrees,longitudeOfLastGridPointInDegrees,
N,pl,Nj);
nearest reduced(values,radius,Nj,pl);
#meta sumPlArray sum(pl);
#meta dataGlobal evaluate( sumPlArray == (numberOfValues+numberOfMissing) );
} else {
iterator gaussian(numberOfPoints,missingValue,values,
longitudeFirstInDegrees,DiInDegrees ,
Ni,Nj,iScansNegatively,
latitudeFirstInDegrees, latitudeLastInDegrees,
N,jScansPositively);
nearest regular(values,radius,Ni,Nj);
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;

View File

@ -23,7 +23,7 @@ meta g2grid g2grid(
jDirectionIncrement,
basicAngleOfTheInitialProductionDomain,
subdivisionsOfBasicAngle
);
);
meta geography.latitudeOfFirstGridPointInDegrees g2latlon(g2grid,0) : dump;
meta geography.longitudeOfFirstGridPointInDegrees g2latlon(g2grid,1) : dump;
@ -59,12 +59,12 @@ _if ( missing(Ni) && PLPresent == 1 ) {
} else {
transient iteratorDisableUnrotate = 0 : hidden; # ECC-808
iterator latlon(numberOfPoints,missingValue,values,
longitudeFirstInDegrees,DiInDegrees ,
Ni,Nj,iScansNegatively,
latitudeFirstInDegrees, DjInDegrees,
jScansPositively, jPointsAreConsecutive,
isRotatedGrid, angleOfRotation,
latitudeOfSouthernPoleInDegrees,longitudeOfSouthernPoleInDegrees);
longitudeFirstInDegrees,DiInDegrees ,
Ni,Nj,iScansNegatively,
latitudeFirstInDegrees, DjInDegrees,
jScansPositively, jPointsAreConsecutive,
isRotatedGrid, angleOfRotation,
latitudeOfSouthernPoleInDegrees,longitudeOfSouthernPoleInDegrees);
nearest regular(values,radius,Ni,Nj);
}
meta latLonValues latlonvalues(values);

View File

@ -28,14 +28,16 @@ flagbit scanningMode6(scanningMode,2) = 0: read_only;
flagbit scanningMode7(scanningMode,1) = 0: read_only;
flagbit scanningMode8(scanningMode,0) = 0: read_only;
meta swapScanningX change_scanning_direction( values,Ni,Nj,
iScansNegatively,jScansPositively,
xFirst,xLast,x) : edition_specific,hidden,no_copy;
meta swapScanningX change_scanning_direction(
values,Ni,Nj,
iScansNegatively,jScansPositively,
xFirst,xLast,x) : edition_specific,hidden,no_copy;
alias swapScanningLon = swapScanningX;
meta swapScanningY change_scanning_direction( values,Ni,Nj,
iScansNegatively,jScansPositively,
yFirst,yLast,y) : edition_specific,hidden,no_copy;
meta swapScanningY change_scanning_direction(
values,Ni,Nj,
iScansNegatively,jScansPositively,
yFirst,yLast,y) : edition_specific,hidden,no_copy;
alias swapScanningLat = swapScanningY;
meta swapScanningAlternativeRows change_alternative_row_scanning(

View File

@ -3,26 +3,28 @@
# TEMPLATE 7.0, Grid point data - simple packing
meta codedValues data_g2simple_packing(
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsBias,
changingPrecision,
numberOfValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsBias,
changingPrecision,
numberOfValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;

View File

@ -3,26 +3,28 @@
# TEMPLATE 7.1, Matrix values at grid point -simple packing
meta codedValues data_g2simple_packing(
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsBias,
changingPrecision,
numberOfValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsBias,
changingPrecision,
numberOfValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;

View File

@ -19,29 +19,30 @@ meta codedValues data_g22order_packing(
decimalScaleFactor,
optimizeScaleFactor,
typeOfOriginalFieldValues ,
typeOfOriginalFieldValues,
groupSplittingMethodUsed,
missingValueManagementUsed ,
primaryMissingValueSubstitute ,
secondaryMissingValueSubstitute ,
numberOfGroupsOfDataValues ,
referenceForGroupWidths ,
numberOfBitsUsedForTheGroupWidths ,
referenceForGroupLengths ,
missingValueManagementUsed,
primaryMissingValueSubstitute,
secondaryMissingValueSubstitute,
numberOfGroupsOfDataValues,
referenceForGroupWidths,
numberOfBitsUsedForTheGroupWidths,
referenceForGroupLengths,
lengthIncrementForTheGroupLengths,
trueLengthOfLastGroup ,
trueLengthOfLastGroup,
numberOfBitsForScaledGroupLengths,
orderOfSpatialDifferencing,
numberOfOctetsExtraDescriptors
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
alias data.packedValues = codedValues;

View File

@ -14,12 +14,14 @@ meta codedValues data_run_length_packing(
levelValues
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
alias data.packedValues = codedValues;

View File

@ -16,29 +16,30 @@ meta codedValues data_g22order_packing(
decimalScaleFactor,
optimizeScaleFactor,
typeOfOriginalFieldValues ,
typeOfOriginalFieldValues,
groupSplittingMethodUsed,
missingValueManagementUsed ,
primaryMissingValueSubstitute ,
secondaryMissingValueSubstitute ,
numberOfGroupsOfDataValues ,
referenceForGroupWidths ,
numberOfBitsUsedForTheGroupWidths ,
referenceForGroupLengths ,
missingValueManagementUsed,
primaryMissingValueSubstitute,
secondaryMissingValueSubstitute,
numberOfGroupsOfDataValues,
referenceForGroupWidths,
numberOfBitsUsedForTheGroupWidths,
referenceForGroupLengths,
lengthIncrementForTheGroupLengths,
trueLengthOfLastGroup ,
trueLengthOfLastGroup,
numberOfBitsForScaledGroupLengths,
orderOfSpatialDifferencing,
numberOfOctetsExtraDescriptors
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
alias data.packedValues=codedValues;

View File

@ -3,19 +3,21 @@
# TEMPLATE 7.4, Grid point data - IEEE floating point data
meta codedValues data_raw_packing(
section7Length,
offsetBeforeData,
offsetSection7,
numberOfValues,
precision
): read_only;
section7Length,
offsetBeforeData,
offsetSection7,
numberOfValues,
precision
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
alias data.packedValues = codedValues;

View File

@ -3,44 +3,43 @@
# TEMPLATE 7.40, Grid point data - JPEG2000
meta codedValues data_jpeg2000_packing(
section7Length,
offsetBeforeData,
offsetSection7,
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsBias,
changingPrecision,
numberOfCodedValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor,
unitsFactor,
unitsBias,
changingPrecision,
numberOfCodedValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor,
#numberOfValues,
#referenceValue,
#binaryScaleFactor,
#decimalScaleFactor,
#bitsPerValue,
#numberOfValues,
#referenceValue,
#binaryScaleFactor,
#decimalScaleFactor,
#bitsPerValue,
# For encoding
typeOfCompressionUsed,
targetCompressionRatio,
Nx,
Ny,
interpretationOfNumberOfPoints,
numberOfDataPoints,
scanningMode
): read_only;
# For encoding
typeOfCompressionUsed,
targetCompressionRatio,
Nx,
Ny,
interpretationOfNumberOfPoints,
numberOfDataPoints,
scanningMode
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
alias data.packedValues = codedValues;

View File

@ -3,28 +3,29 @@
# TEMPLATE 7.41, Grid point data - PNG
meta codedValues data_png_packing(
section7Length,
offsetBeforeData,
offsetSection7,
numberOfValues,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
bitsPerValue,
# For encoding
Nx,
Ny,
interpretationOfNumberOfPoints,
numberOfDataPoints,
scanningMode
): read_only;
section7Length,
offsetBeforeData,
offsetSection7,
numberOfValues,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
bitsPerValue,
# For encoding
Nx,
Ny,
interpretationOfNumberOfPoints,
numberOfDataPoints,
scanningMode
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
alias data.packedValues = codedValues;

View File

@ -3,27 +3,28 @@
# TEMPLATE 7.42, Grid point data - CCSDS
meta codedValues data_ccsds_packing(
section7Length,
offsetBeforeData,
offsetSection7,
numberOfValues,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor,
bitsPerValue,
numberOfDataPoints,
ccsdsFlags,
ccsdsBlockSize,
ccsdsRsi
): read_only;
section7Length,
offsetBeforeData,
offsetSection7,
numberOfValues,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor,
bitsPerValue,
numberOfDataPoints,
ccsdsFlags,
ccsdsBlockSize,
ccsdsRsi
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
# See ECC-711
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;

View File

@ -9,24 +9,24 @@ transient numberOfValues = ( J + 1 ) * ( J + 2 ) : no_copy ;
transient numberOfPackedValues = numberOfValues - 1 : no_copy;
meta codedValues data_g2simple_packing(
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsBias,
changingPrecision,
numberOfPackedValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor) : read_only;
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsBias,
changingPrecision,
numberOfPackedValues,
bitsPerValue,
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
optimizeScaleFactor) : read_only;
meta values data_g2shsimple_packing(
codedValues,
realPartOf00,
numberOfValues,
numberOfDataPoints);
codedValues,
realPartOf00,
numberOfValues,
numberOfDataPoints);
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;

View File

@ -12,7 +12,7 @@ meta codedValues data_g2complex_packing(
offsetSection7,
unitsFactor,
unitsBias,
unitsBias,
changingPrecision,
numberOfValues,
bitsPerValue,
@ -27,13 +27,8 @@ meta codedValues data_g2complex_packing(
laplacianOperatorIsSet,
laplacianOperator,
J,
K,
M,
J,
J,
J,
J, K, M,
J, J, J,
numberOfValues
): read_only;
@ -58,13 +53,8 @@ meta data.packedValues data_sh_packed(
laplacianOperatorIsSet,
laplacianOperator,
J,
K,
M,
J,
J,
J
J,K, M,
J, J, J
) : read_only;
meta data.unpackedValues data_sh_unpacked(
@ -88,22 +78,20 @@ meta data.unpackedValues data_sh_unpacked(
laplacianOperatorIsSet,
laplacianOperator,
J,
K,
M,
J,
K,
M
J, K, M,
J, K, M
) : read_only;
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
template statistics "common/statistics_spectral.def";

View File

@ -101,11 +101,12 @@ meta data.unpackedValues data_sh_unpacked(
meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
template statistics "common/statistics_spectral.def";

View File

@ -5,8 +5,6 @@
# Note from WMO document:
# This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests
# Octets 6-nn : Binary data values - binary string, with each (scaled)
meta codedValues data_g2simple_packing_with_preprocessing(
section7Length,
offsetBeforeData,
@ -24,12 +22,14 @@ meta codedValues data_g2simple_packing_with_preprocessing(
preProcessingParameter
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
alias data.packedValues = codedValues;

View File

@ -11,7 +11,7 @@ meta codedValues data_g2second_order_packing(
section7Length,
offsetBeforeData,
offsetSection7,
unitsFactor,
unitsFactor,
unitsBias,
changingPrecision,
numberOfCodedValues,
@ -19,7 +19,7 @@ meta codedValues data_g2second_order_packing(
referenceValue,
binaryScaleFactor,
decimalScaleFactor,
#g2second_order_packing
# g2second_order_packing
halfByte,
packingType,
grid_ieee,
@ -43,12 +43,14 @@ meta codedValues data_g2second_order_packing(
numberOfPoints
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
meta values data_apply_bitmap(
codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues
) : dump;
alias data.packedValues = codedValues;