2020-01-28 14:32:34 +00:00
|
|
|
# (C) Copyright 2005- ECMWF.
|
2017-06-14 14:33:37 +00:00
|
|
|
|
2013-03-25 12:04:10 +00:00
|
|
|
# SECTION 6, BIT-MAP SECTION
|
|
|
|
position offsetSection6;
|
|
|
|
position offsetBSection6;
|
|
|
|
|
2014-06-21 21:28:40 +00:00
|
|
|
section_length[4] section6Length ;
|
2013-03-25 12:04:10 +00:00
|
|
|
meta section6 section_pointer(offsetSection6,section6Length,6);
|
|
|
|
|
|
|
|
# Number of section
|
|
|
|
unsigned[1] numberOfSection = 6:read_only;
|
|
|
|
|
|
|
|
# Bit-map indicator
|
|
|
|
codetable[1] bitMapIndicator ('6.0.table',masterDir,localDir) = 255 : dump;
|
|
|
|
|
|
|
|
#transient bitmapPresent=1;
|
|
|
|
meta geography.bitmapPresent g2bitmap_present(bitMapIndicator): dump;
|
2017-08-02 12:48:13 +00:00
|
|
|
transient missingValuesPresent = bitmapPresent : hidden, read_only;
|
2013-03-25 12:04:10 +00:00
|
|
|
|
|
|
|
# Bitmap...
|
2021-02-06 13:07:35 +00:00
|
|
|
if (bitMapIndicator == 0) {
|
|
|
|
if (dataRepresentationTemplateNumber == 1) {
|
|
|
|
if (matrixBitmapsPresent == 1) {
|
2013-03-25 12:04:10 +00:00
|
|
|
meta primaryBitmap g2bitmap( tableReference,
|
|
|
|
missingValue,
|
|
|
|
offsetBSection6,
|
|
|
|
section6Length,
|
|
|
|
numberOfDataMatrices) : read_only;
|
|
|
|
}
|
2021-02-06 13:07:35 +00:00
|
|
|
else {
|
2013-03-25 12:04:10 +00:00
|
|
|
meta geography.bitmap g2bitmap( tableReference,
|
|
|
|
missingValue,
|
|
|
|
offsetBSection6,
|
|
|
|
section6Length,
|
|
|
|
numberOfDataPoints) : read_only;
|
|
|
|
}
|
|
|
|
}
|
2021-02-06 13:07:35 +00:00
|
|
|
else {
|
2013-03-25 12:04:10 +00:00
|
|
|
meta geography.bitmap g2bitmap( tableReference,
|
|
|
|
missingValue,
|
|
|
|
offsetBSection6,
|
|
|
|
section6Length,
|
|
|
|
numberOfDataPoints) : read_only;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-06 13:07:35 +00:00
|
|
|
if (bitMapIndicator == 255)
|
2017-07-31 14:38:33 +00:00
|
|
|
{
|
|
|
|
# No bitmap is used but some complex packing schemes embed the missing values in the data section
|
|
|
|
if (dataRepresentationTemplateNumber == 2 || dataRepresentationTemplateNumber == 3) {
|
2017-08-02 12:48:13 +00:00
|
|
|
transient missingValuesPresent = (missingValueManagementUsed != 0) : read_only;
|
2017-07-31 14:38:33 +00:00
|
|
|
}
|
2023-02-13 14:18:15 +00:00
|
|
|
if (dataRepresentationTemplateNumber == 200) {
|
|
|
|
# This template can have undefined values within its Data Section
|
|
|
|
transient missingValuesPresent = 1;
|
|
|
|
}
|
2017-07-31 14:38:33 +00:00
|
|
|
}
|
|
|
|
|
2013-03-25 12:04:10 +00:00
|
|
|
meta md5Section6 md5(offsetSection6,section6Length);
|