>From the R code snippet I see: "Surprisingly, the value 9.75 is shifted to >106, 86 = 105,85 in Python indexing", but R is 1-base and Python 0-base. In R:
> library(terra) terra 1.7.71 > gdal() [1] "3.8.3" > a <- rast("attachment.obj") > b <- rast("st4_pr.2017092016.01h.tif") > a class : SpatRaster dimensions : 205, 205, 1 (nrow, ncol, nlyr) resolution : 4762, 4762 (x, y) extent : 4940902, 5917112, -7210793, -6234583 (xmin, xmax, ymin, ymax) coord. ref. : +proj=stere +lat_0=90 +lat_ts=60 +lon_0=-105 +x_0=0 +y_0=0 +R=6367470 +units=m +no_defs source : attachment.obj name : SFC (Ground or water surface); Total precipitation [kg/m^2] unit : kg/m^2 time : 2017-09-20 16:00:00 UTC > b class : SpatRaster dimensions : 205, 205, 1 (nrow, ncol, nlyr) resolution : 4762, 4762 (x, y) extent : 4940902, 5917112, -7210793, -6234583 (xmin, xmax, ymin, ymax) coord. ref. : +proj=stere +lat_0=90 +lat_ts=60 +lon_0=-105 +x_0=0 +y_0=0 +R=6367470 +units=m +no_defs source : st4_pr.2017092016.01h.tif name : 0[-] SFC (Ground or water surface) > all.equal(values(a), values(b)) [1] "Attributes: < Component \"dimnames\": Component 2: 1 string mismatch >" > dimnames(values(a)) [[1]] NULL [[2]] [1] "SFC (Ground or water surface); Total precipitation [kg/m^2]" > dimnames(values(b)) [[1]] NULL [[2]] [1] "0[-] SFC (Ground or water surface)" > all.equal(values(a), values(b), check.attributes=FALSE) [1] TRUE Reading both into R shows that the input GRIB data and the GTiff data converted by gdal_translate are identical. By the way, better to use the terra package directly, raster uses it indirectly. Hope this clarifies, Roger -- Roger Bivand Emeritus Professor Norwegian School of Economics Postboks 3490 Ytre Sandviken, 5045 Bergen, Norway roger.biv...@nhh.no _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/gdal-dev