opengeospatial / opengeospatial/CRS-JSON-Encoding

Definition of "ellipsoid" and "ellipsoid_cs"

Open
#26 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Makefile
Stars
0
Forks
2
Avg merge
1h 36m
Merged PRs (30d)
3

Description

NOTE: Markdown does not support highlighting in color, so bold/italic has been used to highlight the material being discussed. This issue is extracted from the document submitted by Roger Lott at https://github.com/opengeospatial/CRS-JSON-Encoding/blob/main/ProjJson%20v0-7%20RL%202024-06-16.docx for discussion at the CRS SWG meeting OGC held during the Montreal June 2024 TC meeting.

"ellipsoid": {
  "type": "object",
  "oneOf":[
    {
      "properties": {
        "$schema" : { "type": "string" },
        "type": { "type": "string", "enum": ["Ellipsoid"] },
        "name": { "type": "string" },
        "semi_major_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
        "semi_minor_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
        "id": { "$ref": "#/definitions/id" },
        "ids": { "$ref": "#/definitions/ids" }
      },
      "required" : [ "name", "semi_major_axis", "semi_minor_axis" ],
      "additionalProperties": false
    },
    {
      "properties": {
        "$schema" : { "type": "string" },
        "type": { "type": "string", "enum": ["Ellipsoid"] },
        "name": { "type": "string" },
        "semi_major_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
        "inverse_flattening": { "type": "number" },
        "id": { "$ref": "#/definitions/id" },
       "ids": { "$ref": "#/definitions/ids" }
      },
      "required" : [ "name", "semi_major_axis", "inverse_flattening" ],
      "additionalProperties": false
    },
    {
      "properties": {
        "$schema" : { "type": "string" },
        "type": { "type": "string", "enum": ["Ellipsoid"] },
        "name": { "type": "string" },
        "radius": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" },
        "id": { "$ref": "#/definitions/id" },
        "ids": { "$ref": "#/definitions/ids" }
      },
      "required" : [ "name", "radius" ],
     "additionalProperties": false
    }
  ],
  "allOf": [
    { "$ref": "#/definitions/id_ids_mutually_exclusive" }
  ]
},

"$comment": "[RL] This is based on the WKT2 definition which was constrained to be backward-compatible to WKT1 in allowing the ellipsoid unit to be omitted and assumed to be metre. 19111/Topic 2 requires the unit to be explicitly stated and need not be metre."

"$comment": "[RL] ProjJSON v0.7 schema omits the definition of a triaxial ellipsoid (this is noted). In 19111/Topic 2 this is provided for by an additional optional semi-median axis attribute. In WKT2 this has a different keyword and (as in 19111/Topic 2) requires unit to be given."

"ellipsoidal_cs": {

"$comment": "[RL] Definition to be completed. The definition should constrain an ellipsoidal CS to have 2 or 3 axes. 19111/Topic 2 constrains axis names to "geodetic latitude, geodetic longitude, [ellipsoidal height (if 3D)]". WKT2 constrains these to be 'latitude', 'longitude' [and 'ellipsoidal height'. WKT2 requires that axis abbreviations be from the Latin character set and recommends that conventionally-used axis abbreviations φ and θ are be replaced by 'lat' and 'lon' or by 'B' and 'L' (conventional in German). In the 3D case, WKT2 constrains the abbreviation for ellipsoidal height (if given) to be 'h'.
See vertical_cs below for a possible template for adding these constraints."

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the proposed ellipsoid schema and the ellipsoidal_cs notes in the issue, then compare the linked ProjJSON v0.7 document with the referenced 19111/Topic 2 and WKT2 constraints. Define the required ellipsoid variants and complete ellipsoidal_cs constraints for 2D and 3D axes. Done means the schema requirements are agreed and represented consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
json
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.