New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TileDB: add support for building overviews on rasters stored as TileDB groups #9837
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
frmts/tiledb/overview_model.rst
Outdated
as a TileDB array whose name is the base name of the group, suffixed with ``_0`` | ||
|
||
The first overview level created is a TileDB array, placed within that group, | ||
and whose name is the base name of the group, suffixed with ``_1``. And so on. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rouault @normanb using the stem of the group name as a part of the array names makes the entire structure fragile. If a group is renamed or moved, the implicit links between group and arrays are broken.
What would you think about a generic prefix such as "pyr" or no prefix at all?
In other words, this:
$ ls -al byte_group.tiledb
drwxr-xr-x 6 even even 4096 mai 2 02:13 ./
drwxrwxr-x 57 even even 86016 mai 2 01:42 ../
drwxr-xr-x 8 even even 4096 mai 1 17:17 pyr_0/ <== Full resolution dataset
drwxr-xr-x 8 even even 4096 mai 2 02:13 pyr_1/ <== First overview level
drwxr-xr-x 8 even even 4096 mai 2 02:13 pyr_2/ <== Second overview level
drwxr-xr-x 2 even even 4096 mai 2 02:13 __group/
drwxr-xr-x 2 even even 4096 mai 2 02:13 __meta/
-rw-r--r-- 1 even even 0 mai 1 17:17 __tiledb_group.tdb
or
$ ls -al byte_group.tiledb
drwxr-xr-x 6 even even 4096 mai 2 02:13 ./
drwxrwxr-x 57 even even 86016 mai 2 01:42 ../
drwxr-xr-x 8 even even 4096 mai 1 17:17 0/ <== Full resolution dataset
drwxr-xr-x 8 even even 4096 mai 2 02:13 1/ <== First overview level
drwxr-xr-x 8 even even 4096 mai 2 02:13 2/ <== Second overview level
drwxr-xr-x 2 even even 4096 mai 2 02:13 __group/
drwxr-xr-x 2 even even 4096 mai 2 02:13 __meta/
-rw-r--r-- 1 even even 0 mai 1 17:17 __tiledb_group.tdb
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm OK with that proposed change
doc/source/drivers/raster/tiledb.rst
Outdated
as a TileDB array. When creating overviews, they will be stored in an | ||
auxiliary TileDB group, located at the same level as the full resolution | ||
array, with an URI which is the one of the full resolution array with an | ||
additional ``.ovr`` suffix. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While it would be handy to be able to add sidecar overviews to an existing array, I'm not sure we want people to create these just because it's possible. What do you think, @normanb ?
|
||
The group has the following TileDB metadata items: | ||
|
||
* ``dataset_type``: set to ``raster`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rouault @normanb I would like to propose raster_pyr_v1
("Raster Pyramid Version 1") for the dataset type value. "v1" because I think we'll want to change the group/array layout down the road, and "pyr" to indicate that this is a raster pyramid. raster
could remain for single-array rasters with or without a sidecar group.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine with that change, and the below one too
frmts/tiledb/overview_model.rst
Outdated
|
||
The group has the following TileDB metadata item: | ||
|
||
* ``dataset_type``: set to ``raster_overviews`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe dataset_type: raster_ovr_v1
with the same naming change as I proposed for raster_pyr_v1
?
@rouault sorry for the delay! We did discuss and here are the conclusions:
|
…B_ATTRIBUTE creation option, when the block size is not a multiple of the raster size
…r+b ; GTiff: turn VSIError into CPLError on creation
…LDebugOnly()/CPLAssert()
…removed per 130560b Even if no longer use deprecated features, the mere fact of including TileDB headers that declare deprecated methods cause warnings to be emitted without the suppression.
… still functional
…t in group mode" This reverts commit a6a0c7f.
I've updated the pull request with those changes, starting at commit "Revert "TileDB raster: implement BuildOverviews() for base dataset not in group mode"). |
Supports the CREATE_GROUP=YES creation option to create TileDB raster datasets as a TileDB group, to make it cleaner to store overview within it.
See https://github.com/rouault/gdal/blob/tiledb_overview/frmts/tiledb/overview_model.rst for a description on how TileDB overviews are stored.
@normanb / @sgillies : this is mostly based on https://docs.google.com/document/d/1B-NizsoJn79W_RV3ujg6K1D5xJmWEja29Bv3323uYCU/edit#heading=h.p8z7kqfrb9st (with the removal of creating overviews on non-group dataset)