Hi,
I have a lot of COGs hosted online in HTTP RANGE compatible storage. I want to
create a catalog/index of them so that GDAL and tools that use GDAL (like QGIS)
can extract the relevant data from the COGs for specific areas. For example,
I’d like to use `gdal raster clip` to clip this big ‘virtual raster’ to a
specific bbox or polygon. Ideally I’d also like to be able to view the big
raster on-the-fly in QGIS, but I’m aware that may be more difficult. My tiles
are ’true tiles’ in that they tessellate properly and each location is in a
single file.
I’ve been looking at the GDAL Tile Index format, but have been getting a bit
confused, and some things haven’t been working quite how I expect. A few
questions below:
1. Is there an easy way to generate a GDAL Tile Index file from a file
containing a list of remote URLs? I couldn’t find the right way to specify a
file containing URLs on the command line, so I ended up writing a short Python
script that loads the list of URLs from a file and then passes them to
gdal.TileIndex. Is that the best way to do this? One disadvantage of this
method is that I can’t seem to get a progress bar to display.
2. My current way of doing that requires GDAL loading the bbox of each file by
requesting it over the network, which is fairly slow, and I have thousands of
files to do this for. Is there a way to get the GTI creation to use local files
on my hard disk for getting the extent of each file, but save the location as a
/vsicurl/ URL to the remote file? I’ve found --base-url in `gdal raster index`
though I’m slightly confused by the description of it ("Base URL for
STAC-GeoParquet the href property of the id property in a STAC-GeoParquet
index.” - does that do what I want and put a base URL in front of each file it
finds?). That option doesn’t seem to be present in `gdal driver gti create`
though, and seems like it may be STAC-GeoParquet specific.
3. Once I’ve created the file, I can do `gdal raster clip` operations on the
command-line quite quickly, but if I load the GTI raster into QGIS then QGIS
just hangs. I hoped it would just request the relevant COGs for the area I was
looking at. I’ve tried loading it in by dragging and dropping the .gti.gpkg
file and then selecting the raster in the layers popup, and also adding it via
Add Layer->Raster and putting ‘GTI:<path>’. I have a web map working which
loads these COG files on the fly depending on where you’re looking (using a
minimal STAC catalog in a JSON file) and was hoping to have the same thing
working in QGIS, without the effort of setting up something like titiler or
titiler-pgstac, as I’m currently managing to get away without running any
servers (as opposed to static data stores) for this data.
If there’s an alternative method I should be looking at for doing either part
of this (the clipping or the viewing in QGIS) then let me know - I’m aware I
may be pushing the boundaries of what can be sensibly done with the GTI format.
Best regards,
Robin
Dr Robin Wilson
_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev