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@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@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@lists.osgeo.org
    https://lists.osgeo.org/mailman/listinfo/gdal-dev



--
Michael Sumner
Software and Database Engineer
Australian Antarctic Division
Hobart, Australia
e-mail: mdsum...@gmail.com

--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to