Skip to content

load_collection (and related): clarify antimeridian handling of spatial_extent parameter #568

Description

@soxofaan

Process ID: load_collection, load_stac and filter_bbox

Describe the issue:
These processes have an argument spatial_extent, which most commonly is used as a bounding box object with fields "west", "east", ...

When using EPSG:4326 (the default) to define an extent across the antimeridian, there are different approaches.
For example, to span from 1 degree west and 1 degree east of the antimeridian:

  1. "west": 179, "east": -179: this is the most strict approach, following the GeoJSON spec. The coordinates are cleanly in the valid range [-180,180]. However, it seem that some people and implementations get confused as it breaks the (wrong) assumption that the west coordinate should be smaller than east coordinate.
  2. "west": 179, "east": 181 and "west": -181, "east": -179: this is probably the most human/natural/intuitive way to handle this, but it breaks out of the valid [-180, 180] range
  3. "west": -179, "east": 179 which is exactly the opposite of the intent, so clearly wrong. However it often occurs in the wild when naively calculating the bounding box with west=min(x coords); east=max(x coords).

I think it's worth to clarify which approaches are acceptable and/or recommended in openEO, so that clients and backends can align properly.
For example:

Proposed solution:

I think approach 1 should be recommended, while approach 2 should still be accepted by backends.

Further context

As far as my CRS knowledge reaches, this is mainly a consideration for EPSG:4326, but I can imagine there are some other CRSes where this applies too.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions