[gdal-dev] Efficient raster bounding box transformation?

Even Rouault even.rouault at spatialys.com
Fri May 3 15:03:39 PDT 2024


==> GDALCreateApproxTransformer(): 
https://gdal.org/api/gdal_alg.html#_CPPv427GDALCreateApproxTransformer19GDALTransformerFuncPvd

Otherwise there's OGRCoordinateTransformation::TransformBounds(), but 
this works from a rectangle in the source CRS

Most simple would be to use GDALAutoCreateWarpedVRT() 
(https://gdal.org/api/gdalwarp_cpp.html#_CPPv423GDALAutoCreateWarpedVRT12GDALDatasetHPKcPKc15GDALResampleAlgdPK15GDALWarpOptions) 
to EPSG:4326 and just take the extent of the warped VRT.

Le 03/05/2024 à 23:25, Simon Eves via gdal-dev a écrit :
> I like it.
>
> On Fri, May 3, 2024 at 2:24 PM Javier Jimenez Shaw 
> <j1 at jimenezshaw.com> wrote:
>
>     Now I think I understand what you mean.
>     One effective way is to convert the four sides of the image. To
>     avoid the conversion of every pixel, you can start a partition
>     process. Then compare the difference between the transformed
>     central point and just the mid point between the extremes. If that
>     different is bigger than an certain threshold, keep subdividing
>     each side. With that you have a good approximation of the borders
>     of the image transformed, and then you can compute your bounding box.
>     The idea is not mine. Even Rouault mentioned it last year in
>     FOSS4G. IIRC, it is used by gdalwarp to not reproject every single
>     point; once the subdivision is enough, then it does linear
>     interpolation.
>
>     On Fri, 3 May 2024 at 22:18, Simon Eves <simon.eves at heavy.ai> wrote:
>
>         Yes, but that's just the corners.
>
>         Consider, say, a raster that contains a satellite sweep which
>         is not axis-aligned but forms a "windshield wiper" shape in
>         lon/lat space. The bounding box of ALL the pixels is not just
>         the bounding box of the corners.
>
>         On Fri, May 3, 2024 at 1:09 PM Javier Jimenez Shaw
>         <j1 at jimenezshaw.com> wrote:
>
>             Maybe I don't understand your question, but in gdalinfo
>             you have the four corners as lat-lon
>
>             On Fri, 3 May 2024, 21:46 Simon Eves via gdal-dev,
>             <gdal-dev at lists.osgeo.org> wrote:
>
>                 So we are trying to optimize our raster import
>                 process, and particularly the steps to derive the
>                 final WGS84/4326 bounding box for a raster file or
>                 tile thereof.
>
>                 Obviously in the general case, the transform is from
>                 integer pixel coordinate through the Affine
>                 Transformation matrix and then whatever
>                 OGRCoordinateTransformation is required to get to
>                 WGS84/4326, and perhaps a GCP-based mesh
>                 transformation too.
>
>                 Currently we are deriving the bounding box by passing
>                 all pixels of the four edges of the file/tile through
>                 the full transform, except in the simple Affine-only
>                 case where we just transform the four corners.
>
>                 Is there any shortcut API provided by GDAL or PROJ to
>                 allow the bounding box to be computed (or at least
>                 safely over-estimated) in the general case? I'm
>                 assuming that even a non-GCP  OGRCT could still be
>                 non-linear such that just transforming the corners is
>                 insufficient.
>
>                 Thanks in advance,
>
>                 Simon
>
>                 -- 
>                 Simon Eves
>                 Senior Rendering Engineer
>                 +1 (415) 902-1996
>                 simon.eves at heavy.ai
>
>                 <http://www.heavy.ai>
>
>                 _______________________________________________
>                 gdal-dev mailing list
>                 gdal-dev at lists.osgeo.org
>                 https://lists.osgeo.org/mailman/listinfo/gdal-dev
>
>
> _______________________________________________
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20240504/58efeffe/attachment-0001.htm>


More information about the gdal-dev mailing list