==> 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
<j...@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.e...@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
<j...@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@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.e...@heavy.ai
<http://www.heavy.ai>
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev
_______________________________________________
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