developmentseed / developmentseed/async-tiff
Support for reading TILE-interleaved COG
- Dominant language
- Rust
- Stars
- 120
- Forks
- 15
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 9
Description
The [GDAL COG driver](https://gdal.org/en/stable/drivers/raster/cog.html) supports three interleaving strategies: `Band`, `pixel` and `tile`.
- `Pixel`: Stores a contiguous chunk for all data of the tile, ordered as `height, width, bands`
- `Band`: _stores every band separately in the COG_. This means that in order to fetch all bands, you need to make one fetch per band.
- `Tile`: Stores a contiguous chunk for all data of the tile, **but ordered `bands, height, width`**
We currently support Pixel and Band interleaving, but should also support Tile interleaving.
Todo:
- [ ] Create a new file in [geotiff-test-data](https://github.com/developmentseed/geotiff-test-data) with tile interleaving
- [ ] Create a new test case here for reading that file.
- [ ] Update data fetching code to support reading an entire chunk for tile interleaved.
- [ ] Update docs for downstream code to interpret the data in correct band order
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by examining the existing Pixel and Band interleaving data-fetching paths and their tests, then create a TILE-interleaved file in geotiff-test-data. Add a reading test for that fixture, update fetching for bands,height,width ordering, and document the downstream band order.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- data, documentation, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100