developmentseed / developmentseed/async-tiff

Support for reading TILE-interleaved COG

Open
#247 3 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.