ARPA-SIMC / meteosatlib

OpenMTP/HRI/HRIT C++ access libraries, gdal drivers and other tools
GNU General Public License v2.0
8 stars 2 forks source link

RSS data test errors on all platforms (eccodes error - encoding invalid) #39

Open brancomat opened 5 days ago

brancomat commented 5 days ago

Full logs: https://simc.arpae.it/moncic-ci/meteosatlib/last/master/

Relevant bits:

gdal_import_xrit_rss: ..ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000000 but the allowable range is -2147483647 to 2147483647 (number of bits=32)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘..ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000000 but the allowable range is -2147483647 to 2147483647 (number of bits=32)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

(...)

gdal_import_xrit_rss: ..ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000000 but the allowable range is -2147483647 to 2147483647 (number of bits=32)
ECCODES ERROR   :  unable to set longitudeOfSubSatellitePoint=9500000000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘..ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000000 but the allowable range is -2147483647 to 2147483647 (number of bits=32)
ECCODES ERROR   :  unable to set longitudeOfSubSatellitePoint=9500000000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)
brancomat commented 5 days ago

Additional info: eccodes versions vary from 2.33 (f38) to 2.36 (f40, rocky8/9)

dcesari commented 3 days ago

I guess that this is an attempt to encode in grib2:

✘ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000000 but the allowable range is -2147483647 to 2147483647 (number of bits=32)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

and this in grib1:

✘..ECCODES ERROR   :  Key "longitudeOfSubSatellitePoint": Trying to encode value of 9500000 but the allowable range is -8388607 to 8388607 (number of bits=24)
ECCODES ERROR   :  Unable to set longitudeOfSubSatellitePoint=9500000 as long (Encoding invalid)
ECCODES ERROR   :  Accessor longitudeOfSubSatellitePointInDegrees: cannot pack value for longitudeOfSubSatellitePoint (Encoding invalid)

since they use respectively 4 and 3 octets for that metadatum and coordinates in units of micro- and milli-degrees, that seems correct. I would rather suggest that it is an error of gdal trying to code a longitude of 9500 degrees instead of 9.5.