opengeospatial / opengeospatial/CRS-JSON-Encoding
Definition of "vertical_crs", "vertical_cs" (Missing) and "vertical_axis" (missing)
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.
"vertical_crs": {
"type": "object",
"properties": {
"type": { "type": "string", "enum": ["VerticalCRS"] },
"name": { "type": "string" },
"datum": {
"oneOf": [
{ "$ref": "#/definitions/vertical_reference_frame" },
{ "$ref": "#/definitions/dynamic_vertical_reference_frame" }
{ "$ref": "#/definitions/datum_ensemble" }
]
},
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" }, STRIKE THIS LINE
"coordinate_system": { "$ref": "#/definitions/coordinate_system" }, STRIKE THIS LINE
"coordinate_system": { "$ref": "#/definitions/vertical_cs" },
"geoid_model": { "$ref": "#/definitions/geoid_model" }, STRIKE THIS LINE
"geoid_model": { "$ref": "#/definitions/transformation" },
"geoid_models": {
"type": "array",
"items": { "$ref": "#/definitions/geoid_model" } STRIKE THIS LINE
"items": { "$ref": "#/definitions/transformation" }
},
"deformation_models": {
"type": "array",
"items": { "$ref": "#/definitions/deformation_model" }
},
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
},
"required" : [ "name", "datum", "coordinate_system" ],
"description": "One and only one of datum and datum_ensemble must be provided",
"allOf": [
{ "$ref": "#/definitions/object_usage" },
{ "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" },
{
"not": {
"type": "object",
"required": [ "geoid_model", "geoid_models" ]
}
}
],
"additionalProperties": false
},
"$comment": "[RL] See comment regarding usage under compound_crs."
"$comment": "[RL] A vertical CRS should be constrained to having a vertical_cs."
"$comment": "[RL] A vertical CRS must have a datum or a datum_ensemble. The schema would be clearer if this was included in the required list."
"$comment": "[RL] Why two attributes geoid_model and geoid_models and only one attribute deformation_models when both associations in the 19111/Topic 2 data model have 0..* cardinallity?"
"$comment": "[RL] Is the geoid model(s) attribute correctly modelled? A geoid model is usually described as a transformation. If this were done here then is the geoid_model member definition above needed in the schema? However, although 19111/Topic 2 has the association to transformation, implying that the full definition is required, for brevity WKT2 requires only the geoid model name. Should the CRS JSON schema give option for either full definition or just name (or ID)?"
"$comment": "[RL] Same question about full definition or name/ID for deformation model. Schema definition of deformation_model allows for only ID."
"vertical_cs": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["verticalCS"] },
"name": { "type": "string" },
"vertical_axis": { "$ref": "#/definitions/vertical_axis" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
"required" : [ "vertical_axis" ],
"allOf": [
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
],
"vertical_axis": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["axis"] },
"name": { "type": "string", "enum": ["gravity-related height", "depth" ] },
"abbreviation": { "type": "string"
"not": { "type": "object",
"required": [ "h", ] }
},
"direction": { "type": "string", "enum": ["up", "down" ] },
"unit": { "$ref": "#/definitions/unit" },
"minimum_value": { "type": "number" },
"maximum_value": { "type": "number" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
"required" : [ "name", "abbreviation", "direction" "unit" ],
"allOf": [
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
],
"additionalProperties": false
},
"$comment": "[RL] The definition constrains a vertical CS to have 1 axis, and axis name to be either 'gravity-related height' or 'depth', axis abbreviation to not be 'h', and axis direction to be either 'up' or down'. (This draft schema syntax needs verification)."
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the proposed vertical_crs, vertical_cs, and vertical_axis definitions in this issue, then read the linked ProjJson v0-7 RL 2024-06-16.docx. Resolve the open modeling questions and verify the draft schema syntax against the repository's existing schema definitions; done means the missing definitions and their constraints are agreed and consistently represented.
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
- Needs clarification
- Newbie friendliness
- 25/100