[gdal-dev] Geotransform for non-North-up images?
G Seiffert
hh1 at posteo.de
Mon Dec 21 05:57:18 PST 2020
Thanks Javier. Need to confess: math is not my strong side. I'm more the
"trial and error" guy. And - shame on me - Google.
Got the rotation AND the scaling correct meanwhile, calculating the
params as described here:
https://gis.stackexchange.com/questions/69715/rotating-rasters-using-gdal-geotransform-and-arcgis-desktop?noredirect=1&lq=1
Below a code snippet (I work in Python). However, with the exact calcs
from above website, my pics were rotated correctly but for some strange
reason mirrored vertically! Try and error: Making GT(4) negative got rid
of the mirroring. So almost happy now, just facing a weird shift of 2m
to west and 0.7m to south, working on it.
# ROTATION PART Start ================================================
rot_deg = 90
rotation = np.deg2rad(rot_deg)
GT0 = orig_x
GT1 = math.cos(rotation) * image_resolution
GT2 = -math.sin(rotation) * image_resolution
GT3 = orig_y
GT4 = -math.sin(rotation) * image_resolution
GT5 = math.cos(rotation) * image_resolution
geotrans = (GT0, GT1, GT2, GT3, GT4, GT5)
# ROTATION PART End ================================================
Thanks so far! Also Thomas and Jukka!
Gerhard
> Javier Jimenez Shaw <mailto:j1 at jimenezshaw.com>
> 21 December 2020 10:55
> Those transformation parameters can be seen as a 3x3 transformation
> matrix like this
>
> Xg GT1 GT2 GT0 Xp
> Yg = GT4 GT5 GT3 * Yp
> 1 0 0 1 1
>
> Where [Xp, Yp] is the coordinate in pixels, and [Xg, Yg] is the
> "geographic" coordinate (whatever it means ;)
>
> the 2x2 top left corner of the transformation matrix can be seen as a
> 2D rotation-scaling matrix:
> https://en.wikipedia.org/wiki/Transformation_matrix#Examples_in_2_dimensions
> [GT0, GT3]is the "geographic" coordinate of the pixel [0,
> 0](regardless rotation or scaling)
>
> Cheers
> .___ ._ ..._ .. . ._. .___ .. __ . _. . __.. ... .... ._ .__
> Entre dos pensamientos racionales
> hay infinitos pensamientos irracionales.
>
>
>
> G Seiffert <mailto:hh1 at posteo.de>
> 21 December 2020 10:24
> Hi all from GDLA.
>
> Thanks for the opportunity to as a question. It's regarding the
> Geotransform
> Tutorial(https://gdal.org/tutorials/geotransforms_tut.html). Tried to
> get info in the web but since this seems a tricky one, my searches failed.
>
> The tutorial only deals with the ideal case of 'North up' images, for
> which GT(2) and GT(4) are zero. However, my images are 'East up' and
> potentially 'any direction up' (underwater photomosaic surveys by
> ROV). The rotation works with '90' for GT(2, 4). But the scaling seems
> completely ignored. Any hint? If it would be easy, I assume your
> tutorial would give an example for how to deal with "non-N-up' images,
> but ...
>
> My pics are 1920x1080, with pixel resolution of 0.0015 (yes, 0.15cm
> per pixel, we're flying just 3m above the bottom).
>
> In case I rotate the images prior to geotransform (in Photoshop),
> geotransform works perfect, with GT(2, 4) = 0. Scaling spot on. I can
> live with that for our last survey but I'm also looking for a solution
> in case our survey heading cannot be 0, 90, 180, or 270, but has to be
> something like 35° (due to bottom currents etc.).
>
> Best regards, any hint qappreciated,
> Gerhard
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20201221/3c145302/attachment.html>
More information about the gdal-dev
mailing list