In my previous role, we regularly dealt with large swathes of commercial very-high-resolution (VHR) satellite and aerial imagery. Not only was this data required by in-house imagery analysts for property damage assessment but for display on the client-facing insurance exposure and claims platform. Such imagery was typically divided into constituent tiles, significant in total volume, in less common format (e.g., .tif and .tfw, MrSID), and projected in a local CRS (e.g., UTM zones). With this in mind, the third-party mapping service employed by the company - where a majority of client-facing data was hosted - impose several constraints on the data uploaded to their platform:
While reprojecting the entire source image at the maximum resolution required, thereof dictated by the maximum zoom level
specified, would result in faster tiling, this represents a considerable potential source of memory issues. Such an approach
would preclude the tiling of large images, be they large due to spatial resolution, data type, number of bands, and/or area
covered. By lazily reading and, if needed, reprojecting windows of the source dataset at a given tile's resolution, memory
use is kept low.
Data of all projections and data types can be tiled with no alterations made to the original.
This comparison employs the same Sentinel-2 L2A tile (T17RLK) for an area of western Florida and the Gulf of Mexico, shortly after the passage of Hurricane Ian. Natively projected in EPSG:32617 (WGS 84 / UTM zone 17N), QGIS' on-the-fly projection could be advantageous regarding tiling speed. However, as can be seen in the below images, QGIS-generated tiles introduce not insignificant shifting in pixel locations and artefacts from resampling.
Source image (EPSG:32617)
Source image, OpenStreetMap overlay
QGIS zoom level 12
QGIS zoom level 12, OpenStreetMap overlay
rasterioxyz zoom level 12
rasterioxyz zoom level 12, OpenStreetMap overlay
While - at present - rasterioxyz is several times slower than QGIS' equivalent functionality, rasterioxyz utilises just one thread
compared to QGIS' 16 in testing on the same machine. Investigation of threads' effectiveness in rasterioxyz's reprojection and
writing functionality is high priority.
A number of improvements to rasterioxyz are possible and/or planned: