[gdal-dev] Geotransform for non-North-up images?

G Seiffert hh1 at posteo.de
Mon Dec 21 09:23:17 PST 2020


Thanks Javier, but as it looks the way I did works great. Got rid of the 
XY shift as well. Rotation affects the calculations for the origin as 
well, of course, this is what I needed to correct. In case of 0 vs 90 
deg rotation the fix was simple. Will now work on trig formulas that 
work with any rotation angle.

G


> Javier Jimenez Shaw <mailto:j1 at jimenezshaw.com>
> 21 December 2020 14:02
> I am not sure, but I guess that you have to negate also GT5: y axis is 
> reversed between image coordinates and "geographic" coordinates.
> .___ ._ ..._ .. . ._.  .___ .. __ . _. . __..  ... .... ._ .__
> Entre dos pensamientos racionales
> hay infinitos pensamientos irracionales.
>
>
>
> G Seiffert <mailto:hh1 at posteo.de>
> 21 December 2020 12:57
> 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
>
>
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev
> 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
>
>
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20201221/c1534e0e/attachment.html>


More information about the gdal-dev mailing list