This may be a helpful resource: https://github.com/rasterio/affine
On Thu, Nov 17, 2022, 9:08 AM Even Rouault <even.roua...@spatialys.com> wrote: > > Le 17/11/2022 à 16:01, Brendan Heberlein a écrit : > > Thank you, Mike & Even. > > Supposing I wanted to have the output grid origin & dimensions computed > automatically, but with a specified rotation angle, is that possible? > > There's no API in GDAL for it. You indeed have to set something like the > following > > > gt[1] = cos(angle) * pixel_x_size > > gt[2] = -sin(angle) * pixel_x_size > > gt[4] = sin(angle) * pixel_y_size > > gt[5] = cos(angle) * pixel_y_size > > > I assume the above only works if the origin (gt[0], gt[3]) is the > lower-left corner coordinate, not the upper-one. And I might certainly have > got some signs wrong :-) > > > Slightly related code in the ENVI driver to transform the rotation angle > from its header file to a geotransform matrix (but conventions might be > slightly different): > > > https://github.com/OSGeo/gdal/blob/66d9fe0b1a34a8992c804c2444f7f23c2436b937/frmts/raw/envidataset.cpp#L1536 > > > Anyway I can calculate these parameters myself, so it is not a big issue. > Your suggestion worked for me. > > Cheers! > Brendan > > ------------------------------ > *From:* Even Rouault <even.roua...@spatialys.com> > <even.roua...@spatialys.com> > *Sent:* Saturday, November 5, 2022 4:36 AM > *To:* Michael Sumner <mdsum...@gmail.com> <mdsum...@gmail.com>; Brendan > Heberlein <bheberl...@wisc.edu> <bheberl...@wisc.edu> > *Cc:* gdal-dev <gdal-dev@lists.osgeo.org> <gdal-dev@lists.osgeo.org> > *Subject:* Re: [gdal-dev] Specify Grid Rotation for gdal.Warp() with > Geolocation Arrays > > > > Le 05/11/2022 à 04:33, Michael Sumner a écrit : > > yes I see, well you can probably set a target GeoTIFF with the > geotransform that you want - and gdalwarp to that as the target. > > something like > > out_ds = gdal.GetDriverByName("GTiff").Create("output.tif", width, height, > number_of_bands, data_type, options = ["TILED=YES"]) > > out_ds.SetGeoTransform([ some geotransform with rotational terms ]) > > srs = osr.SpatialReference() > > srs.ImportFromEPSG( xxx ) / srs.ImportFromWkt( xxx ) > > out_ds.SetSpatialRef( srs ) > gdal.Warp(out_ds, src_ds, .... ) > > > > I don't believe you can do that with gdalwarp directly, and I have no idea > with python - and finally I'm sorry to add irrelevant discussion - but this > is interesting and I'm going to try it out in R and C++ and would love to > see a python example too. > > Cheers, Mike > > > > > > On Sat, Nov 5, 2022 at 2:21 PM Brendan Heberlein <bheberl...@wisc.edu> > wrote: > > Hi Mike, > > regardless of the map projection, it may be desirable to have the grid > oriented in one direction or another, e.g. due to the spatial distribution > of data points. Although the CRS/SRS designates the coordinate axes, these > are not always aligned with the desired grid orientation. > > So, basically I want to be able to specify an arbitrary geotransform array > for the output grid. This would allow the grid to be assigned an arbitrary > orientation within the CRS frame. > > Thanks, > Brendan > ------------------------------ > *From:* Michael Sumner <mdsum...@gmail.com> > *Sent:* Friday, November 4, 2022 6:57 PM > *To:* Brendan Heberlein <bheberl...@wisc.edu> > *Cc:* gdal-dev <gdal-dev@lists.osgeo.org> > *Subject:* Re: [gdal-dev] Specify Grid Rotation for gdal.Warp() with > Geolocation Arrays > > well, the map projection does this - there are many possibilities. Or, do > you have another geolocation array you want as the target? > > If you have an example I'm happy to try a few things, but I'd assumed you > had a target map projection in mind. What kind of crs to choose depends on > your goal, or is purely to not have north up? > > Perhaps there's something terminology wise I'm missing ... > > Mike > > On Sat, 5 Nov 2022, 10:50 Brendan Heberlein, <bheberl...@wisc.edu> wrote: > > Hi Mike, > > thanks for the response. > > Can you clarify how I would go about specifying the grid orientation for > the output raster? None of -te, -ts or -t_srs address this. > > > ------------------------------ > *From:* Michael Sumner <mdsum...@gmail.com> > *Sent:* Friday, November 4, 2022 6:41 PM > *To:* Brendan Heberlein <bheberl...@wisc.edu> > *Cc:* gdal-dev <gdal-dev@lists.osgeo.org> > *Subject:* Re: [gdal-dev] Specify Grid Rotation for gdal.Warp() with > Geolocation Arrays > > that's exactly what the warper does with geolocation arrays, set the > target extent, dimension, and crs with -te, -ts, -t_srs with gdalwarp. > > python will have those analogous controls for the warper. > > Cheers, Mike > > > > On Sat, 5 Nov 2022, 01:23 Brendan Heberlein via gdal-dev, < > gdal-dev@lists.osgeo.org> wrote: > > Hello, > > I would like to be able to warp an image dataset using a geolocation > array, while specifying the grid to which the output dataset is sampled. > Specifically, I want to be able to warp the dataset to a grid which is not > oriented North-up. > > Can GDAL support this currently? Or, what is the likelihood this could be > supported in the future? > > I primarily rely on the Python bindings, so a solution within that > framework would be ideal for me. > > Thanks! > — Brendan > > > _______________________________________________ > 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 > > _______________________________________________ > gdal-dev mailing > listgdal-dev@lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/gdal-dev > > -- http://www.spatialys.com > My software is free, but my time generally not. > > -- 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 >
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/gdal-dev