Skip to content

Docs add async geotiff quickstart#315

Open
aboydnw wants to merge 6 commits into
microsoft:mainfrom
aboydnw:docs-add-async-geotiff-quickstart
Open

Docs add async geotiff quickstart#315
aboydnw wants to merge 6 commits into
microsoft:mainfrom
aboydnw:docs-add-async-geotiff-quickstart

Conversation

@aboydnw

@aboydnw aboydnw commented Jun 2, 2026

Copy link
Copy Markdown

Related to this tutorial: microsoft/PlanetaryComputerDataCatalog#528

aboydnw and others added 5 commits June 1, 2026 21:14
Companion notebook for the async-geotiff tutorial in
PlanetaryComputerDataCatalog. Walks through pixel-level Cloud Optimized
GeoTIFF reads on Planetary Computer Sentinel-2 data: obstore-authenticated
store, metadata inspection, single-window read, parallel multi-window
reads via asyncio.gather, and Lonboard visualization handoff.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The notebook used unreleased/nonexistent APIs that fail on install:
obstore from_asset(async_=True), GeoTIFF.open(full_href), and
lonboard.experimental.RasterLayer.from_stac. Rewrite against the shipping
libraries: from_asset(asset) with an empty open() path, the Sentinel-2
visual (RGB) asset (async-geotiff 0.5.1 mis-decodes single-band B04), and
a BitmapTileLayer fed by the Planetary Computer tiler for the map view.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The asset.href cell printed a fully-signed blob URL into committed output,
tripping secret scanners. Show the unsigned blob path instead. The token was
a read-only, short-lived delegated SAS for a public open-data container; no
private credential was exposed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mirror tutorial changes to address Kyle Barron's feedback:

- Add pillow to install (used by render_tile callback).
- Frame `geotiff` as the full-resolution image and `geotiff.overviews`
  as the pyramid below it; read windows from `geotiff` directly.
- Rename returned class Array -> RasterArray; rename variable
  array -> raster_array.
- Swap manual np.transpose for the reshape_as_image helper.
- Replace BitmapTileLayer + titiler-backed visualization with
  RasterLayer.from_geotiff + a render_tile callback so the example
  showcases async-geotiff directly.
- Replace the 64-window asyncio.gather fan-out with a single
  Window(0,0,2048,2048) read, since read() coalesces range requests
  internally.
- Refresh the "you're done" summary to match the new framing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant