ESRIC: Add write (CreateCopy()) support#14362
Conversation
…e compact cache V2 spec
… use common gdal logic
Build a warped VRT for each LOD, encode non-empty tiles, and write them into the matching bundle writer for each bundle block
…in preperation for zipping
… 1 band sources to RGB before resampling. Expand paletted 1-band sources to RGB(A) so that resampling operates on colour values instead of palette indices
… OpenFileGDB driver
Each output LOD now warps from the coarsest source overview that does not exceed the target resolution, avoiding unnecessary downsampling from full resolution. Uses nearest-neighbour resampling when resolutions match
Quality is applicable for JPEG only and has a default of 75. MIN_LOD and MAX_LOD must be in the range [0, 23] and the default is 0 and 1 to match arcgis pro. Summary is a string and Tags are user comma separated tags
ArcGIS sets RGB(253, 253, 253) as the NoData for JPEG and RGBA(NoData, NoData, NoData, 0) for PNG
Since disabling deflate compression to match arcgis pro, need to also disable SOZIP
…mplicit conversions between variables and set the default TILE_FORMAT to PNG to match ArcGIS Pro
…nder GDALRegister_ESRIC
|
CC @lucianpls |
…ad of loading the MEM driver and using GDALCreate
|
Hi @lucianpls , any update on this? |
|
Hi, To be honest, I don't see the need for this. Adding write for only TPKX format would be very confusing. Even if regular cache could be made writable, I don't really want to have to answer questions or maintain that kind of code in gdal. The esri tile cache format is supposed to be a mostly read format that scales to really large sizes since the individual pieces can be worked on independently while being large enough to be more efficient that single tiles. The TPKX is only a transfer mechanism for a cache, which has problems when it gets large enough. I prefer a separate toolchain, having the capability to create individual bundles and pack later, it would be higher performance, more useful and flexible. Similar to the gdal2tiles script. Pieces exist, like my own MaBaker that creates bundles using gdal python bindings. Adding a python "tpkx" python packer to that would be easy, if having TPKX is the ultimate goal. |
|
I believe that esri has no intention of supporting tpkx as a generic raster format either. |
What does this PR do?
Added write support for the ESRIC driver through the
CreateCopy()pattern. The writer only supports writing the zipped.tpkxcache with JSON metadata, not the exploded directory cache characterized by the XML metadataconf.xml.What are related issues/pull requests?
N/A
AI tool usage
Tasklist
Environment
Provide environment details, if relevant: