Skip to content

feat(geotiff): Overhaul GeoTIFF and Overview classes#225

Merged
kylebarron merged 19 commits intomainfrom
kyle/wip-array-struct
Feb 13, 2026
Merged

feat(geotiff): Overhaul GeoTIFF and Overview classes#225
kylebarron merged 19 commits intomainfrom
kyle/wip-array-struct

Conversation

@kylebarron
Copy link
Member

@kylebarron kylebarron commented Feb 13, 2026

There was a lot of refactoring to do at once, so this is sadly a single PR that adds a ton of features

Change list

  • Make GeoTIFF and Overview classes more similar to their Python counterparts from async-geotiff.
  • Implement initial fetchTile
  • Refactor decoder API. The pluggable decoder API can return either an ArrayBuffer or a DecodedPixels type. The idea is that "image encodings" like LERC and JPEG can return structured, typed arrays, while "compressions" like deflate/zstd can return an ArrayBuffer.
  • The high-level decode function now always returns a higher-level typed array concept.
  • Add GeoKeyDirectory structured type that provides easier access by name
  • Add Array concept and utils.
  • Add LERC decoder
  • Add tests, though these tests may be replaced with tests against geotiff-test-data.

@kylebarron kylebarron marked this pull request as ready for review February 13, 2026 21:26
@kylebarron kylebarron changed the title wip: array struct feat(geotiff): Overhaul GeoTIFF and Overview classes Feb 13, 2026
@github-actions github-actions bot added the feat label Feb 13, 2026
@kylebarron kylebarron enabled auto-merge (squash) February 13, 2026 21:29
@kylebarron kylebarron merged commit 857a8c2 into main Feb 13, 2026
3 checks passed
@kylebarron kylebarron deleted the kyle/wip-array-struct branch February 13, 2026 21:29
@ds-release-bot ds-release-bot bot mentioned this pull request Feb 18, 2026
kylebarron pushed a commit that referenced this pull request Feb 18, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>0.3.0-beta.1</summary>

##
[0.3.0-beta.1](v0.2.0...v0.3.0-beta.1)
(2026-02-18)


### Features

* **affine:** Create new affine standalone package as port of Python
affine
([ce7b73d](ce7b73d))
* Create `morecantile` subpackage
([#238](#238))
([20b3ace](20b3ace))
* Create new `geotiff` subpackage, abstracting over `@cogeotiff/core`
([#223](#223))
([4fa5230](4fa5230))
* **geotiff:** generate TileMatrixSet from `GeoTIFF` instance
([#235](#235))
([cb1106e](cb1106e))
* **geotiff:** High-level CRS handling from GeoTIFF GeoKeys
([#236](#236))
([559dc03](559dc03))
* **geotiff:** Overhaul `GeoTIFF` and `Overview` classes
([#225](#225))
([857a8c2](857a8c2))
* **geotiff:** Support decoding JPEG and WebP-compressed COGs
([#229](#229))
([3dc6281](3dc6281))
* Initial GeoTIFF dynamic decoder API
([#226](#226))
([5d611f3](5d611f3))
* Overhaul to use our `geotiff` package & generic TileMatrixSet support
([#208](#208))
([860a701](860a701)),
closes
[#216](#216)


### Bug Fixes

* Fix shader caching
([#221](#221))
([2a02439](2a02439))


### Miscellaneous Chores

* release 0.3.0-beta.1
([#239](#239))
([8ba364e](8ba364e))
</details>

<details><summary>affine: 0.3.0-beta.1</summary>

## 0.3.0-beta.1 (2026-02-18)


### Features

* **affine:** Create new affine standalone package as port of Python
affine
([ce7b73d](ce7b73d))
* **geotiff:** generate TileMatrixSet from `GeoTIFF` instance
([#235](#235))
([cb1106e](cb1106e))
* Overhaul to use our `geotiff` package & generic TileMatrixSet support
([#208](#208))
([860a701](860a701)),
closes
[#216](#216)


### Miscellaneous Chores

* release 0.3.0-beta.1
([#239](#239))
([8ba364e](8ba364e))
</details>

<details><summary>geotiff: 0.3.0-beta.1</summary>

## 0.3.0-beta.1 (2026-02-18)


### Features

* **affine:** Create new affine standalone package as port of Python
affine
([ce7b73d](ce7b73d))
* Create new `geotiff` subpackage, abstracting over `@cogeotiff/core`
([#223](#223))
([4fa5230](4fa5230))
* **geotiff:** generate TileMatrixSet from `GeoTIFF` instance
([#235](#235))
([cb1106e](cb1106e))
* **geotiff:** High-level CRS handling from GeoTIFF GeoKeys
([#236](#236))
([559dc03](559dc03))
* **geotiff:** Overhaul `GeoTIFF` and `Overview` classes
([#225](#225))
([857a8c2](857a8c2))
* **geotiff:** Support decoding JPEG and WebP-compressed COGs
([#229](#229))
([3dc6281](3dc6281))
* Initial GeoTIFF dynamic decoder API
([#226](#226))
([5d611f3](5d611f3))
* Overhaul to use our `geotiff` package & generic TileMatrixSet support
([#208](#208))
([860a701](860a701)),
closes
[#216](#216)


### Miscellaneous Chores

* release 0.3.0-beta.1
([#239](#239))
([8ba364e](8ba364e))
</details>

<details><summary>morecantile: 0.3.0-beta.1</summary>

## 0.3.0-beta.1 (2026-02-18)


### Features

* Create `morecantile` subpackage
([#238](#238))
([20b3ace](20b3ace))
* **geotiff:** generate TileMatrixSet from `GeoTIFF` instance
([#235](#235))
([cb1106e](cb1106e))
* Overhaul to use our `geotiff` package & generic TileMatrixSet support
([#208](#208))
([860a701](860a701)),
closes
[#216](#216)


### Miscellaneous Chores

* release 0.3.0-beta.1
([#239](#239))
([8ba364e](8ba364e))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: ds-release-bot[bot] <116609932+ds-release-bot[bot]@users.noreply.github.com>
@ds-release-bot ds-release-bot bot mentioned this pull request Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant