Skip to content

Add PMTiles and improve assets links#21

Merged
jenningsanderson merged 5 commits intomainfrom
stac-with-pmtiles
Feb 4, 2026
Merged

Add PMTiles and improve assets links#21
jenningsanderson merged 5 commits intomainfrom
stac-with-pmtiles

Conversation

@jenningsanderson
Copy link
Collaborator

@jenningsanderson jenningsanderson commented Feb 3, 2026

Adds PMTiles and uses alternate and storage extensions

Copy link
Member

@jjcfrancisco jjcfrancisco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I have left optional minor comments. I also have couple of general questions:

  1. Why is the STAC catalog published daily (i.e. publish-stac.yaml) if releases are monthly?
  2. Why is the same STAC catalog generated twice one for labs.overturemaps.org/stac/ and one for stac.overturemaps.org/?

logger = logging.getLogger(__name__)

# Schema version mapping (same as CLI)
SCHEMA_VERSION_MAPPING: dict[str, str] = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be imported directly cli.py instead of duplicating?

from overture_stac.cli import schema_version_mapping
...
schema = schema_version_mapping.get(release, "unknown")

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, nice catch! This was thrown together and I want to revisit it's ability to run as part of CI as well.

fs.FileSelector("overturemaps-us-west-2/release")
)

# TODO: These should be stored elsewhere, but for now we'll hardcode them here
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If schema versions are available in new STAC catalogs, do we need to maintain this mapping? We could read from the published catalog and only require schema for new releases.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about this — but then we'd always need to be passing in the new schema version.

I don't think that any information surfaced from STAC should be anything new — it should just be a convenient index into the Overture Release and artifacts. I think we need to tie the schema version to the data somewhere else in the pipeline so that it's discoverable.


# TODO: These should be stored elsewhere, but for now we'll hardcode them here
schema_version_mapping = {
schema_version_mapping: dict[str, str] = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may also need to change this when instantiating OvertureRelease

Suggested change
schema_version_mapping: dict[str, str] = {
SCHEMA_VERSION_MAPPING: dict[str, str] = {

# Get all fragments
all_fragments = list(type_dataset.get_fragments())
if debug:
all_fragments = all_fragments[:2]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curiosity: why debug only gets the two first in the list?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to run faster — there are a lot of files!

@jenningsanderson
Copy link
Collaborator Author

Looks good! I have left optional minor comments. I also have couple of general questions:

  1. Why is the STAC catalog published daily (i.e. publish-stac.yaml) if releases are monthly?

It runs daily to pick up any changes in the s3://overturemaps-us-west-2 bucket from the 60 day retention policy, which does not always line up with the release.

  1. Why is the same STAC catalog generated twice one for labs.overturemaps.org/stac/ and one for stac.overturemaps.org/?

We could probably turn this off, but it's nice to have a running version of main here as opposed to what's running on airflow. If we ever wanted to point stac.overturemaps.org -> labs.overturemaps.org/stac, it should be seamless. This was more important for development, but now that we also have staging.overturemaps.org/stac/pr/<pr #>, this is less critical.

@jenningsanderson jenningsanderson merged commit 73cb8c5 into main Feb 4, 2026
6 checks passed
@jenningsanderson jenningsanderson deleted the stac-with-pmtiles branch February 4, 2026 18:30
This was referenced Feb 4, 2026
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.

2 participants