[gdal-dev] gdal_translate shifted values
Laurențiu Nicola
lnicola at dend.ro
Thu Feb 1 04:57:40 PST 2024
It's actually pretty easy to test:
import numpy as np
import xarray as xr
from osgeo import gdal
xarray_ds = xr.load_dataset("st4_pr.2017092016.01h", engine="cfgrib")
# GDAL uses 9999 as NODATA
xarray_data = np.nan_to_num(xarray_ds.tp.data, nan=9999.0)
gdal_ds = gdal.Open("st4_pr.2017092016.01h")
gdal_data = gdal_ds.GetRasterBand(1).ReadAsArray()
>>> gdal_data[80]
array([9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 40.5 , 41.125, 41.75 , 42.5 ,
43. , 26.5 , 26.875, 27. , 29.875, 49.875,
50.375, 41.5 , 41.375, 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
0. , 0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. ])
>>> xarray_data[80]
array([9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 13.75 , 14.25 , 14.75 ,
19.125, 32.5 , 30.125, 27.125, 25.5 , 22.25 ,
22.375, 20.25 , 18.375, 16.625, 15.25 , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. , 9999. , 9999. , 9999. , 9999. , 9999. ,
9999. ], dtype=float32)
The values are obviously different.
I also tried to convert to NetCDF and open them in QGIS, but they look almost the same (not identical) to me after fixing up the coordinates, so there's probably more at play.
Again, comparing the gdal_translate output with the GRIB data as read by GDAL can't show any issues.
Laurentiu
On Thu, Feb 1, 2024, at 13:24, Laurențiu Nicola via gdal-dev wrote:
> Hi Jukka,
>
> If GDAL shuffled around the pixels in that file, you wouldn't be able to notice it by comparing the GRIB and the TIFF, because both would be shuffled.
>
> My suggestion was to convert the GRIB to a NC or even CSV using xarray, then comparing the GDAL output against that.
>
> Laurentiu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20240201/65267d0d/attachment-0001.htm>
More information about the gdal-dev
mailing list