[gdal-dev] ASCII Gridded XYZ and "Hectare Raster" data (STATPOP and STATENT)
Stefan Keller
sfkeller at gmail.com
Wed Apr 24 16:20:14 PDT 2019
25. Apr. 2019 01:04 Uhr Even Rouault wrote:
> > => But, I'm still looking for a hint to set pixel sizes without
> > guessing or calculating the "outsize" from the extents of the input
> > file.
>
> This is left as an exercice to the contributor to implement a -tr option
> similar to gdalwarp / gdal_translate.
Got it :-)
In the meantime I try to sort out a calculation by hand.
> You would also need to grow the raster extent by a half-pixel size, so that
> the middle of each raster point matches exactly an exact x,y coordinate of
> your CSV ...
Now everything makes sense to me!
I had to read the above sentence twice, though.
And I'm now realizing the meaning of -txe/-tye.
Merci beaucoups! I'll try that.
:Stefan
Am Do., 25. Apr. 2019 um 01:04 Uhr schrieb Even Rouault
<even.rouault at spatialys.com>:
>
> On jeudi 25 avril 2019 00:26:35 CEST Stefan Keller wrote:
> > Hi,
> >
> > Am 22. Apr. 2019 23:49 wrote regarding gdal_grid:
> > > Is there a solution for just setting output pixel size in map units
> >
> > By guessing the "-outsize 65 75" (no. of X and Y lines) I finally got
> > a result which contained a pixel size of 100, -100 meters plus
> > sensible values:
> >
> > # gdal_grid -ot UInt16 -of GTiff -zfield "C3" -a
> > nearest:radius1=71:radius2=71 -outsize 65 75 in.gpkg out.tif
> >
> > => But, I'm still looking for a hint to set pixel sizes without
> > guessing or calculating the "outsize" from the extents of the input
> > file.
>
> This is left as an exercice to the contributor to implement a -tr option
> similar to gdalwarp / gdal_translate.
>
> >
> > Then, I observed another problem: One obviously has no choice in
> > gdal_grid than to choose an interpolation method. As one can see from
> > the command above, I've chosen "nearest neighbour" as interpolation
> > method (option "-a nearest:radius1=71:radius2=71").
>
> Why 71 ? If you're grid size is 100 meters, then less than 50 meters would be
> a good radius
> You would also need to grow the raster extent by a half-pixel size, so that
> the middle of each raster point matches exactly an exact x,y coordinate of
> your CSV (GDAL convention for georeferencing is the coordinate of the top-left
> corner of a pixel area, not its center)
> By default, gdal_grid takes the extent of the vector file to set it as the
> extent of the raster file, and doesn't do this half-pixel extension, which is
> the likely cause for the effect you observed.
>
> Example:
>
> given grid.csv with
>
> x,y,z
> 100,500,1
> 300,500,3
> 100,600,4
> 200,600,5
> 300,600,6
>
> # note the missing value at 200,500
>
> $ ogr2ogr grid.gpkg grid.csv -oo X_POSSIBLE_NAMES=x -oo Y_POSSIBLE_NAMES=y
>
> # Note the extra small radius since the center of a raster grid matches a
> # input vector point, or none
> $ gdal_grid -a nearest:radius1=1:radius2=1:nodata=-99 grid.gpkg grid.tif \
> -txe 50 350 -tye 650 450 -outsize 3 2 -zfield z
>
> $ gdal_translate grid.tif /vsistdout/ -of aaigrid
> ncols 3
> nrows 2
> xllcorner 50.000000000000
> yllcorner 450.000000000000
> cellsize 100.000000000000
> NODATA_value -99
> 4.0 5 6
> 1 -99 3
>
>
> Even
>
> --
> Spatialys - Geospatial professional services
> http://www.spatialys.com
More information about the gdal-dev
mailing list