[gdal-dev] Reprojecting image with lat/lon bands - best practice?
Conrad Bielski
conrad_bielski at yahoo.com
Mon Oct 21 07:36:35 PDT 2024
Hello again,thanks for all the suggestions. While I haven't found the solution yet for my issue, I definitely learned a lot of new powerful tools in GDAL. It took me a bit of time to test the solutions and understand why it was not working for me (just yet).
@Even - the solutions you provided would work 'if' my data was pixel-to-pixel overlaid with the image data. I understand your workflow which is really nice (and I hope to use it in other simpler cases).
I also hoped that the rfc4 solution would do it but this only would work if the spacing is regular. In my case, the spacing is 'time based' so the geogrphic spacing is not regular. On the rfc4 page (https://gdal.org/en/latest/development/rfc/rfc4_geolocate.html) there is reference to: netCDF: NetCDF files can have differently varying maps in x and y directions, which are represented as geolocation arrays when they are encoded as CF conventions "two-dimensional coordinate variables". See the netcdf driver page for details. -> I'm working with such a NetCDF dataset. Is there a solution based on this?
Just to let you know, the geo raster = Band 1 Block=973x819 Type=Int32, ColorInterp=Undefinedimage = Band 1 Block=1217x1023 Type=UInt16, ColorInterp=Undefined.
One solution that I did not test yet (thanks Trent) is to use gdal_grid to interpolate the X and Y locations to the same grid as the image. Then I should be able to apply the suggested solution because the location information should be in the same grid.
Fingers crossed,Conrad
On Saturday, October 19, 2024 at 05:47:44 AM GMT+1, Michael Sumner <mdsumner at gmail.com> wrote:
Nice one, thanks! (I had a fomenting PR to implement on the fly geolocation array config, so I'll use your hallucination for the design phase).
🤟
On Sat, 19 Oct 2024, 14:44 Even Rouault, <even.rouault at spatialys.com> wrote:
Le 18/10/2024 à 23:32, Michael Sumner a écrit :
I didn't know you could do that with -to!! That's awesome
🤟
Hum, sorry for giving a wrong track, it seems the newly LLM module implemented in my brain has hallucinated...
So you have rather to create a geoloc.vrt file with
gdal_translate input.tif geoloc.vrt -b 2 -b 1
and then;
gdal_translate input.tif imagery.vrt -b 3
gdalwarp imagery.vrt imagery_warped.tif -geoloc -to GEOLOC_ARRAY=geoloc.vrt -a_srs EPSG:4326 -overwrite
On Sat, 19 Oct 2024, 05:01 Even Rouault via gdal-dev, <gdal-dev at lists.osgeo.org> wrote:
Conrad,
Try something like:
gdal_translate input.tif imagery.vrt -b 3
gdalwarp imagery.vrt imagery_warped.tif -geoloc -to X_DATASET=input.tif -to X_BAND=2 -to Y_DATASET=input.tif -to Y_BAND=1 -to PIXEL_OFFSET=0 -to PIXEL_STEP=1 -to LINE_OFFSET=0 -to LINE_STEP=1 -to SRS=EPSG:4326 -a_srs EPSG:4326 -overwrite
Obviously I have most certainly got something wrong in the above, but hopefully with a tiny tweaking that should put you on the right track.
Reference: RFC 4: Geolocation Arrays — GDAL documentation
|
|
| |
RFC 4: Geolocation Arrays — GDAL documentation
|
|
|
there is
Even
Le 18/10/2024 à 12:37, Javier Jimenez Shaw via gdal-dev a écrit :
Is it an actual grid? in the meaning of having constant step size in X and Y. In that case the geolocation is just the corner and the x and y sizes. You can convert to a georeference raster, and warp it.
If it is not the case, you have something more like a 2D pointcloud, or a bunch of poins in a strange vector format.
On Fri, 18 Oct 2024 at 12:20, Conrad Bielski via gdal-dev <gdal-dev at lists.osgeo.org> wrote:
Hello GDAL-experts,
normally when I use GDAL for reprojecting imagery, the projection information that I use is the source spatial reference (SRS) associated with the imagery. However, now I have imagery which is lat/lon geographic and I have two separate bands which also carry the pixel geographic information. So the following raster inputs all the same size: 1. Band 1 = latitude 2. Band 2 = longitude 3. Band 3 = imagery
The question I have is how best to integrate this information into a reprojection workflow?
I presume that gdalwarp is the best option here, but how can I take advantage of the individual pixel location information (rather than just the extents for example)? I know that I can mosaic into an existing file that I have already created in the target projection. Is this the best way to apply gdalwarp in this context?
I'm just wondering what is the best way to integrate the lat/lon pixel information into my warping using gdalwarp.
Thanks in advance for your help, Conrad
_______________________________________________
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.
Butcher of all kinds of standards, open or closed formats. At the end, this is just about bytes. _______________________________________________
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.
Butcher of all kinds of standards, open or closed formats. At the end, this is just about bytes.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20241021/cb2364df/attachment-0001.htm>
More information about the gdal-dev
mailing list