Skip to content

Commit 6845328

Browse files
authored
Add files via upload
1 parent 831e766 commit 6845328

70 files changed

Lines changed: 3331 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# EBV Phenology Finland — 17 OGC Building Blocks
2+
3+
Complete modelling of the **CoverageJSON UML** (OGC 21-069r2) plus **EBV-specific blocks**.
4+
5+
## [→ Interactive CoverageJSON Viewer](viewer/)
6+
7+
## CoverageJSON UML → Building Blocks (1:1 mapping)
8+
9+
```
10+
CoverageCollection → covjson-coverage-collection
11+
└─ 1..* Coverage → covjson-coverage
12+
├─ 1 Domain → covjson-domain
13+
│ ├─ 1..* Axis → covjson-axis
14+
│ └─ * ReferenceSystem → covjson-reference-system
15+
├─ * ParameterGroup → covjson-parameter-group
16+
│ └─ 1..* Parameter → covjson-parameter
17+
└─ 1..* Range → covjson-range
18+
├─ 1..* NdArray → covjson-ndarray
19+
└─ 0..1 TiledNdArray → covjson-tiled-ndarray
20+
```
21+
22+
## EBV-Specific Blocks
23+
24+
| Block | Purpose |
25+
|-------|---------|
26+
| EBV Dataset Profile | GEO BON class/name/entities/scope |
27+
| Phenology Indicators | Trends (-0.45 d/yr), anomalies, change points |
28+
| Data Provenance | W3C PROV: MODIS → FSC/NDWI → VAP |
29+
| Data Quality | ±9 days accuracy, ~3 days bias |
30+
| EBV Phenology Ontology | OWL/SKOS in 4 languages (EN, ES, ZH, RO) |
31+
| Policy Alignment | GBF Goal A, SDG 15, IPBES, NBSAP |
32+
| Ecosystem Services Link | Pollination, carbon, water impacts |
33+
34+
## Dataset
35+
Vegetation Phenology in Finland (2001–2018). DOI: [10.25829/xf8ek6](https://doi.org/10.25829/xf8ek6). CC BY 4.0.

_sources/covjson-axis/bblock.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"$schema":"metaschema.yaml","name":"CovJSON Axis","abstract":"Single coordinate axis of a coverage domain: spatial (x,y,z) or temporal (t). Defines start, stop, num for regular axes or explicit values.","status":"under-development","dateTimeAddition":"2024-01-01T00:00:00Z","itemClass":"schema","register":"ogc-building-block-examples","version":"1.0","dateOfLastChange":"2024-01-01","sources":[{"title":"OGC CoverageJSON 21-069r2 §7.2","link":"https://docs.ogc.org/cs/21-069r2/21-069r2.html"}],"tags":["covjson","axis","coordinate","grid"],"group":"CoverageJSON Primitives","highlighted":false}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# CovJSON Axis
2+
3+
A single coordinate axis. Two forms:
4+
5+
**Regular axis** (evenly spaced): `{"start": 14.10, "stop": 35.23, "num": 320}`
6+
7+
**Irregular axis** (explicit values): `{"values": ["2001", "2002", ..., "2018"]}`
8+
9+
## Finland Phenology Axes
10+
- **x** (longitude): start=14.10, stop=35.23, num=320
11+
- **y** (latitude): start=57.75, stop=71.17, num=200
12+
- **t** (time): values=["2001", "2002", ..., "2018"]

_sources/covjson-axis/schema.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
$schema: https://json-schema.org/draft/2020-12/schema
2+
description: CoverageJSON Axis - regular or irregular coordinate axis
3+
type: object
4+
properties:
5+
start: {type: number}
6+
stop: {type: number}
7+
num: {type: integer}
8+
values:
9+
type: array
10+
items:
11+
oneOf:
12+
- {type: number}
13+
- {type: string}
14+
bounds:
15+
type: array
16+
items: {type: number}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"$schema":"metaschema.yaml","name":"CovJSON Coverage Collection","abstract":"Collection of coverages grouping multiple entities. Maps to the EBV Data Cube with 4 dimensions: lon, lat, time, entity.","status":"under-development","dateTimeAddition":"2024-01-01T00:00:00Z","itemClass":"schema","register":"ogc-building-block-examples","version":"1.0","dateOfLastChange":"2024-01-01","sources":[{"title":"OGC CoverageJSON 21-069r2 §6.3","link":"https://docs.ogc.org/cs/21-069r2/21-069r2.html"}],"dependsOn":["syke.ebv.phenology.covjson-coverage"],"tags":["covjson","collection","datacube","entities"],"group":"CoverageJSON Composites","highlighted":true}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# CovJSON Coverage Collection
2+
3+
Groups multiple coverages = EBV Data Cube.
4+
5+
## [→ Open Interactive Viewer](../../viewer/)
6+
7+
## UML: CoverageCollection 0..1 ← 1..* Coverage
8+
```
9+
CoverageCollection (EBV Data Cube)
10+
├── Coverage: Coniferous VAP (320×200×18)
11+
├── Coverage: Deciduous VAP (320×200×18)
12+
└── ParameterGroup: "Ecosystem Phenology"
13+
├── member: VAP_coniferous
14+
└── member: VAP_deciduous
15+
```
16+
17+
## 4 Dimensions of the EBV Cube
18+
1. **x** (longitude): 14.10° – 35.23°
19+
2. **y** (latitude): 57.75° – 71.17°
20+
3. **t** (time): 2001–2018 annual
21+
4. **entity**: Coniferous, Deciduous (one Coverage per entity)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
examples:
2+
- title: Finland VAP collection (coniferous + deciduous)
3+
content: |
4+
CoverageCollection with two entity coverages. ParameterGroup semantically links
5+
both under EcosystemPhenology. Maps to the EBV Data Cube (lon, lat, time, entity).
6+
snippets:
7+
- language: json
8+
ref: examples/finland-vap-all-entities.json
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"type": "CoverageCollection",
3+
"domainType": "Grid",
4+
"parameters": {
5+
"VAP": {
6+
"type": "Parameter",
7+
"description": {
8+
"en": "Start of Vegetation Active Period",
9+
"es": "Inicio del Periodo Activo de Vegetación",
10+
"zh": "植被活跃期起始",
11+
"ro": "Începutul Perioadei Active a Vegetației"
12+
},
13+
"unit": {
14+
"label": {"en": "Day of Year"},
15+
"symbol": {"value": "d"}
16+
},
17+
"observedProperty": {
18+
"id": "https://w3id.org/ogc/hosted/ebv-phenology/StartOfVAP",
19+
"label": {"en": "Start of VAP", "es": "Inicio del PAV", "zh": "VAP起始", "ro": "Începutul VAP"}
20+
}
21+
}
22+
},
23+
"parameterGroups": [
24+
{
25+
"type": "ParameterGroup",
26+
"label": {"en": "Phenology by forest type", "es": "Fenología por tipo de bosque"},
27+
"observedProperty": {
28+
"id": "https://w3id.org/ogc/hosted/ebv-phenology/EcosystemPhenology",
29+
"label": {"en": "Ecosystem Phenology", "es": "Fenología del Ecosistema"}
30+
},
31+
"members": ["VAP_coniferous", "VAP_deciduous"]
32+
}
33+
],
34+
"coverages": [
35+
{
36+
"type": "Coverage",
37+
"domain": {
38+
"type": "Domain", "domainType": "Grid",
39+
"axes": {
40+
"x": {"start":14.10,"stop":35.23,"num":320},
41+
"y": {"start":57.75,"stop":71.17,"num":200},
42+
"t": {"values":["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018"]}
43+
},
44+
"referencing": [{"coordinates":["x","y"],"system":{"type":"GeographicCRS","id":"http://www.opengis.net/def/crs/OGC/1.3/CRS84"}},{"coordinates":["t"],"system":{"type":"TemporalRS","calendar":"Gregorian"}}]
45+
},
46+
"ranges": {"VAP": {"type":"NdArray","dataType":"integer","axisNames":["t","y","x"],"shape":[18,200,320]}}
47+
},
48+
{
49+
"type": "Coverage",
50+
"domain": {
51+
"type": "Domain", "domainType": "Grid",
52+
"axes": {
53+
"x": {"start":14.10,"stop":35.23,"num":320},
54+
"y": {"start":57.75,"stop":71.17,"num":200},
55+
"t": {"values":["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018"]}
56+
},
57+
"referencing": [{"coordinates":["x","y"],"system":{"type":"GeographicCRS","id":"http://www.opengis.net/def/crs/OGC/1.3/CRS84"}},{"coordinates":["t"],"system":{"type":"TemporalRS","calendar":"Gregorian"}}]
58+
},
59+
"ranges": {"VAP": {"type":"NdArray","dataType":"integer","axisNames":["t","y","x"],"shape":[18,200,320]}}
60+
}
61+
]
62+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
$schema: https://json-schema.org/draft/2020-12/schema
2+
description: CoverageJSON CoverageCollection - groups multiple entity coverages
3+
type: object
4+
required: [type, coverages]
5+
properties:
6+
type:
7+
type: string
8+
const: CoverageCollection
9+
domainType: {type: string}
10+
parameters: {type: object}
11+
parameterGroups:
12+
type: array
13+
items: {type: object}
14+
coverages:
15+
type: array
16+
items:
17+
type: object
18+
required: [type]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"$schema":"metaschema.yaml","name":"CovJSON Coverage","abstract":"Complete coverage composing Domain, Parameters, ParameterGroups and Ranges. The core CoverageJSON object for raster data.","status":"under-development","dateTimeAddition":"2024-01-01T00:00:00Z","itemClass":"schema","register":"ogc-building-block-examples","version":"1.0","dateOfLastChange":"2024-01-01","sources":[{"title":"OGC CoverageJSON 21-069r2 §6","link":"https://docs.ogc.org/cs/21-069r2/21-069r2.html"}],"dependsOn":["syke.ebv.phenology.covjson-domain","syke.ebv.phenology.covjson-parameter","syke.ebv.phenology.covjson-parameter-group","syke.ebv.phenology.covjson-range"],"tags":["covjson","coverage","raster","composite"],"group":"CoverageJSON Composites","highlighted":true,"ldContext":"context.jsonld"}

0 commit comments

Comments
 (0)