[gdal-dev] Reading interpolated values on DSM

Even Rouault even.rouault at spatialys.com
Wed Apr 24 06:16:08 PDT 2024


Le 24/04/2024 à 15:00, Michael Sumner a écrit :
> Or a grouping function that returned the cell index for neighbours and 
> weighting that are involved in whatever calculation summary is wanted.
That doesn't seem super user friendly, as users would still be left to 
do the raster value extraction and applying the weights, taking into 
account nodata, etc. Not trivial. What is the advantage of this compared 
to returning the interpolated value? The only one I see is to 
potentially save a bit of computation if you need to interpolate values 
at the same location in multiple bands, but the performance gain would 
probably be marginal (or if not, then a variant of the function dealing 
with multiple bands could be offered)
>
> Maybe the warper could return this as a starting point rather than 
> doing the "task at hand". ?
The warper code has indeed a "FilterFuncType 
GWKGetFilterFunc(GDALResampleAlg eResampleAlg)" method that returns a 
function that returns interpolation weights and int 
GWKGetFilterRadius(GDALResampleAlg eResampleAlg). The code in 
GDALRPCGetDEMHeight() has an interesting logic where it caches a window 
of interest around the first queried pixel so that subsequent queries in 
the neighbouroud can be honoured without going to RasterIO(). This 
substantially improves performance in the RPC case, in particular during 
reverse transformation where you use an iterative method and thus may 
need a lot of DEM extraction to compute a single point.
>
>
>
> On Wed, Apr 24, 2024 at 8:51 PM Even Rouault via gdal-dev 
> <gdal-dev at lists.osgeo.org> wrote:
>
>     Hi,
>
>     I guess this discussion, and past similar ones, calls for an
>     enhancement. A new API function, like CPLErr
>     GDALRasterInterpolateAtPoint(GDALRasterBandH, double dfPixel,
>     double dfLocation, GDALRIOResampleAlg eInterpolation, double
>     *pdfValue), that could be used by a new mode of gdallocationinfo.
>     The GDALRPCGetDEMHeight() function in alg/gdal_rpc.cpp is a
>     plausible candidate implementation for bilinear and bicubic (we
>     could potentially restrict to that at the moment).
>
>     Even
>
>     Le 24/04/2024 à 10:33, Javier Jimenez Shaw via gdal-dev a écrit :
>>     Hi
>>
>>     I would like to read in QGIS or GDAL an interpolated value in a
>>     DSM (well, actually it is a geoid model, but it is the same
>>     behaviour). See that I do not want the pixel value, but the
>>     linear interpolation among the neighbour pixels, assuming that
>>     the pixel value is in the center of the pixel.
>>     For instance, this file
>>     https://www.isgeoid.polimi.it/Geoid/Asia/Japan/japan2000_g.html
>>
>>     Is there any way to get it (without implementing the
>>     interpolation myself)?
>>     If I understood correctly gdallocationinfo is not interpolating,
>>     just giving the pixel value.
>>
>>     Thanks
>>
>>     .___ ._ ..._ .. . ._.  .___ .. __ . _. . __..  ... .... ._ .__
>>
>>     _______________________________________________
>>     gdal-dev mailing list
>>     gdal-dev at lists.osgeo.org
>>     https://lists.osgeo.org/mailman/listinfo/gdal-dev
>
>     -- 
>     http://www.spatialys.com
>     My software is free, but my time generally not.
>
>     _______________________________________________
>     gdal-dev mailing list
>     gdal-dev at lists.osgeo.org
>     https://lists.osgeo.org/mailman/listinfo/gdal-dev
>
>
>
> -- 
> Michael Sumner
> Software and Database Engineer
> Australian Antarctic Division
> Hobart, Australia
> e-mail: mdsumner at gmail.com

-- 
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20240424/7a6cfbc5/attachment.htm>


More information about the gdal-dev mailing list