[GRASS-user] raster pixel value

Nikos Alexandris nik at nikosalexandris.net
Thu Mar 14 09:57:16 PDT 2019


* Markus Metz <markus.metz.giswork at gmail.com> [2019-03-14 17:07:49 +0100]:

>On Thu, Mar 14, 2019 at 3:16 PM Nikos Alexandris <nik at nikosalexandris.net>
>wrote:
>>
>> Following up, why are there differences between GDAL and GRASS GIS in
>> the following example?
>>
>> This ftp://ftp.soilgrids.org/data/aggregated/5km/OCDENS_M_sl1_5km_ll.tif
>> raster map, subject to `gdalinfo`:
>> ```
>> gdalinfo OCDENS_M_sl1_5km_ll.tif -nogcp -nomd -norat -noct -nofl
>> Driver: GTiff/GeoTIFF
>> Files: OCDENS_M_sl1_5km_ll.tif
>> Size is 7200, 2987
>> Coordinate System is:
>> GEOGCS["WGS 84",
>>     DATUM["WGS_1984",
>>         SPHEROID["WGS 84",6378137,298.257223563,
>>             AUTHORITY["EPSG","7030"]],
>>         AUTHORITY["EPSG","6326"]],
>>     PRIMEM["Greenwich",0],
>>     UNIT["degree",0.0174532925199433],
>>     AUTHORITY["EPSG","4326"]]
>> Origin = (-180.000000000000000,87.370000000000005)
>> Pixel Size = (0.050000000000000,-0.050000000000000)
>> Corner Coordinates:
>> Upper Left  (-180.0000000,  87.3700000) (180d 0' 0.00"W, 87d22'12.00"N)
>> Lower Left  (-180.0000000, -61.9800000) (180d 0' 0.00"W, 61d58'48.00"S)
>> Upper Right ( 180.0000000,  87.3700000) (180d 0' 0.00"E, 87d22'12.00"N)
>> Lower Right ( 180.0000000, -61.9800000) (180d 0' 0.00"E, 61d58'48.00"S)
>> Center      (   0.0000000,  12.6950000) (  0d 0' 0.00"E, 12d41'42.00"N)
>> Band 1 Block=7200x1 Type=Int16, ColorInterp=Gray
>>   NoData Value=-32768
>> ```
>>
>> and GRASS GIS
>> ```
>> # create a new Location
>> grass -c OCDENS_M_sl1_5km_ll.tif /geoyeux/grassdb/global/soil_grids/
>>
>> # projection info
>> g.proj -g
>>
>> name=WGS 84
>> datum=wgs84
>> ellps=wgs84
>> proj=ll
>> no_defs=defined
>> epsg=4326
>> unit=degree
>> units=degrees
>> meters=1.0
>>
>> # raster info
>> r.info -g OCDENS_M_sl1_5km_ll
>>
>> north=87.37
>> south=-61.98
>> east=180
>> west=-180
>> nsres=0.05
>> ewres=0.05
>> rows=2987
>> cols=7200
>> cells=21506400
>> datatype=CELL
>> ncats=0
>>
>> # report non-NULL cells and their x, y grid location
>> r.stats OCDENS_M_sl1_5km_ll -n -x > stats_x
>> ```
>>
>> Comparing a few single pixels via:
>> ```
>> while read LINE;do
>>     set -- $LINE
>>     echo " ($1,$2)
>>     echo "GDAL:  $(gdallocationinfo -valonly OCDENS_M_sl1_5km_ll.tif $1
>$2)"
>>     echo "GRASS: $3"
>>     echo
>> done < stats_x_head
>> ```
>>
>> gives
>> ```
>>  (2930,77)
>> GDAL:  2090
>> GRASS: 2096
>>
>>  (2931,77)
>> GDAL:  2055
>> GRASS: 2090
>>
>>  (2932,77)
>> GDAL:  2063
>> GRASS: 2055
>>
>>  (2933,77)
>> GDAL:  2093
>> GRASS: 2063
>>
>>  (2934,77)
>> GDAL:  2240
>> GRASS: 2093
>>
>>  (2935,77)
>> GDAL:  2332
>> GRASS: 2240
>>
>>  (2936,77)
>> GDAL:  2296
>> GRASS: 2332
>>
>>  (2937,77)
>> GDAL:  2253
>> GRASS: 2296
>>
>>  (2938,77)
>> GDAL:  2179
>> GRASS: 2253
>>
>>  (2939,77)
>> GDAL:  2115
>> GRASS: 2179
>> ```
>>
>> Why these differences?
>
>With r.stats -x, indexing starts with 1 (first row is 1).
>With gdallocationinfo, indexing starts with 0 (first row is 0).

Updated:
```
while read LINE ;do
    set -- ${LINE}
    echo " ($1,$2)"
    echo "GDAL:  $(gdallocationinfo -valonly OCDENS_M_sl1_5km_ll.tif $(echo $1 - 1 |bc) $(echo $2 - 1 |bc))"
    echo "GRASS: ${3}"
    echo
done < stats_x_head
```

which gives
```
 (2930,77)
GDAL:  2096
GRASS: 2096

 (2931,77)
GDAL:  2090
GRASS: 2090

 (2932,77)
GDAL:  2055
GRASS: 2055

 (2933,77)
GDAL:  2063
GRASS: 2063

 (2934,77)
GDAL:  2093
GRASS: 2093

 (2935,77)
GDAL:  2240
GRASS: 2240

 (2936,77)
GDAL:  2332
GRASS: 2332

 (2937,77)
GDAL:  2296
GRASS: 2296

 (2938,77)
GDAL:  2253
GRASS: 2253

 (2939,77)
GDAL:  2179
GRASS: 2179
```
Danke Markus!


>Markus M
>>
>> Nikos
>>
>>
>> # meta
>>
>> GRASS 7.7.svn (2019)
>> libgis Revision: 74118
>> libgis Date: 2019-02-21 10:38:28 +0100 (Thu, 21 Feb 2019)
>>
>> GDAL 2.3.1, released 2018/06/22
>> _______________________________________________
>> grass-user mailing list
>> grass-user at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/grass-user

-- 
Nikos Alexandris | Remote Sensing & Geomatics
GPG Key Fingerprint 6F9D4506F3CA28380974D31A9053534B693C4FB3 


More information about the grass-user mailing list