Closed brancomat closed 2 years ago
This is the current output of make check
that I observe
Running /tmp/meteosatlib/tests/msat_test
msat_facts: ...
msat_fileaccess: ....
msat_dataaccess: ......
gdal_georef_grib: ...
gdal_georef_netcdf: ...
gdal_georef_xrit: ...
gdal_georef_xrit_hrv: ...
gdal_import_grib: .............
gdal_import_netcdf: .............
gdal_import_xrit: .............
gdal_import_xrit_rss: .............
gdal_import_xrit_nonlinear: .............
gdal_import_xrit_hrv: .............
gdal_import_xrit_rss_hrv: .............
gdal_xrit_reflectance: ✘.✘.✘.✘✘.✘.
gdal_xrit_solar_za: ✘.✘.
* Test failures
gdal_xrit_reflectance.vis06: N4msat5tests4gdal13gdalexceptionE: GDAL failure error 1: Point outside of projection domain
gdal/test-xrit-reflectance.cpp:50:actual(rb->RasterIO(GF_Read, 2000, 3400, 1, 1, &valr, 1, 1, GDT_Float32, 0, 0)) == CE_None
gdal_xrit_reflectance.ir039: N4msat5tests4gdal13gdalexceptionE: GDAL failure error 1: Point outside of projection domain
gdal/test-xrit-reflectance.cpp:87:actual(rb->RasterIO(GF_Read, 2000, 350, 1, 1, &valr, 1, 1, GDT_Float32, 0, 0)) == CE_None
gdal_xrit_reflectance.new_vis06: N4msat5tests4gdal13gdalexceptionE: GDAL failure error 1: Point outside of projection domain
gdal/test-xrit-reflectance.cpp:130:actual(rb->RasterIO(GF_Read, 2000, 3400, 1, 1, &valr, 1, 1, GDT_Float32, 0, 0)) == CE_None
gdal_xrit_reflectance.new_ir039_sat_za: N4msat5tests4gdal13gdalexceptionE: GDAL failure error 1: Point outside of projection domain
gdal/test-xrit-reflectance.cpp:167:actual(rb->RasterIO(GF_Read, 2000, 3400, 1, 1, &valr, 1, 1, GDT_Float64, 0, 0)) == CE_None
gdal_xrit_reflectance.new_ir039_cos_sol_za: N4msat5tests4gdal13gdalexceptionE: GDAL failure error 1: Point outside of projection domain
gdal/test-xrit-reflectance.cpp:185:actual(rb->RasterIO(GF_Read, 2000, 3400, 1, 1, &valr, 1, 1, GDT_Float64, 0, 0)) == CE_None
gdal_xrit_reflectance.new_ir039_vrt_reflectance: 100.000 is different than the expected 22.324
gdal/test-xrit-reflectance.cpp:211:actual((double)valr).almost_equal(22.3242, 3)
gdal_xrit_solar_za.vis06:[N4msat5tests4gdal13gdalexceptionE] GDAL failure error 1: Point outside of projection domain
gdal_xrit_solar_za.ir039:[N4msat5tests4gdal13gdalexceptionE] GDAL failure error 1: Point outside of projection domain
* Result summary
8/131 tests failed
123 tests succeeded
Questo problema nei test non si riproduce su debian bullseye
Ho risolto i vari Point outside of projection
, e ok. Rimane 100.000 is different than the expected 22.324
.
Nel GDAL di Fedora36, l'elemento OpenOptions
del file .vrt
(vedi tests/data/reflectance_ir039.vrt
) non viene piú passato nei dati del dataset da aprire.
L'unico workaround che mi viene in mente è supportare le varie postprocessazioni di dataset di meteosatlib non solo tramite opzioni di apertura, ma anche tramite una sintassi nel nome del file (tipo aprendo file.grib::sat_za
per postprocessare calcolando il satellize zenith angle).
Ho cercato di guardare i sorgenti di gdal per capire come mai si fossero perse quelle informazioni, ma ho avuto poco successo. Semmai provo a chiedere in IRC
In alternativa, non si specificano i postprocessing nel file .vrt ma solo i dataset di input, e poi si fa il setup dei postprocessing internamente.
In entrambe le proposte di workaround cambierebbe il comportamento dei file .vrt
: quanto e come sono usati in produzione?
Come non detto, il setup del postprocessing internamente non si può fare perché alla pixel function che calcola la riflettanza arrivano non i dataset o rasterband sorgenti, ma gìa delle matrici di dati
Intanto confermo che il bug persiste anche in gdal 3.5
Sembra che al momento non sia usata la funzione di usare vrt per calcolare riflettanze a partire da dataset non necessariamente in formato HRIT, per cui il resto di questo issue si può risolvere semplicemente rimuovendo la funzionalità da meteosatlib.
Prima di farlo, cerco di creare un reproducer per la mancanza del passaggio delle OpenOptions e di aprire un bug in GDAL, cosí se poi ci servirà reintrodurre questa funzionalità, magari avremo lumi lato GDAL
Ho fatto un sorgente minimo per riprodurre il problema e ho aperto un issue a GDAL
This happens only in fedora 36 builds (gdal 3.4.3)
Full log: https://download.copr.fedorainfracloud.org/results/simc/stable/fedora-36-x86_64/04438391-meteosatlib/builder-live.log.gz or https://simc.arpae.it/moncic-ci/meteosatlib/202205240728/master/fedora36/build.log
Relevant bit: