Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vector layers on product pages (DEA Coastlines) #368

Merged
merged 50 commits into from
Feb 10, 2025
Merged
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
aeaae75
Created layer template logic based on bands logic and added layer dummy
benji-glitsos-ga Dec 23, 2024
9246d2a
Editing layers figure
benji-glitsos-ga Dec 23, 2024
1e0d9ad
Adding attributes
benji-glitsos-ga Dec 23, 2024
6ec45de
Adding attributes data
benji-glitsos-ga Dec 23, 2024
21d8518
layers table
benji-glitsos-ga Dec 23, 2024
153bb51
Attributes content
benji-glitsos-ga Dec 23, 2024
bb0ff86
Added layers summary row
benji-glitsos-ga Jan 2, 2025
f2cce57
Wording of the layers summary
benji-glitsos-ga Jan 2, 2025
5080513
Reformatting the layers table
benji-glitsos-ga Jan 2, 2025
989cc9b
Rewording summary
benji-glitsos-ga Jan 2, 2025
53d0bcf
Added layers table to starter kit
benji-glitsos-ga Jan 2, 2025
9d0ae2c
RST table fix
benji-glitsos-ga Jan 3, 2025
0694091
Minor formatting of vector layers
benji-glitsos-ga Jan 3, 2025
6d0087d
Designing vector layers
benji-glitsos-ga Feb 4, 2025
841766f
UI text
benji-glitsos-ga Feb 4, 2025
1078c53
Minor edits
benji-glitsos-ga Feb 4, 2025
da66936
Rearranging bands table columns
benji-glitsos-ga Feb 4, 2025
41f0167
Rearranging bands table columns
benji-glitsos-ga Feb 4, 2025
5f56539
Made layers type and units fields be functional
benji-glitsos-ga Feb 4, 2025
8bb2aa4
Wording
benji-glitsos-ga Feb 4, 2025
8b1699f
Reordered the columns on external data template as well
benji-glitsos-ga Feb 4, 2025
dd3515c
Add data types and units to specs table
robbibt Feb 5, 2025
c98b0ec
Add hotspot layers to specs
robbibt Feb 5, 2025
66c550c
Fix wording
robbibt Feb 5, 2025
6d75819
Space underneath tables
benji-glitsos-ga Feb 5, 2025
47663cc
Space underneath tables
benji-glitsos-ga Feb 5, 2025
13545d3
Capitalised types and units
benji-glitsos-ga Feb 5, 2025
917d017
Removed Count in units
benji-glitsos-ga Feb 5, 2025
962fd9c
Removed hard-coded layer text
benji-glitsos-ga Feb 5, 2025
0e2a6a0
Minor wording
benji-glitsos-ga Feb 5, 2025
87aefd9
Minor wording
benji-glitsos-ga Feb 5, 2025
5e43785
Space below tables
benji-glitsos-ga Feb 6, 2025
ce75cb2
Minor wording
benji-glitsos-ga Feb 6, 2025
b27406b
Editing UI text
benji-glitsos-ga Feb 6, 2025
7a623ae
Added list of layers with hyperlinks
benji-glitsos-ga Feb 6, 2025
4e4bdd4
Trying to use index number for layer name anchor
benji-glitsos-ga Feb 6, 2025
9147ef6
Trying to fix anchor links
benji-glitsos-ga Feb 6, 2025
8c85db1
Using raw HTML
benji-glitsos-ga Feb 6, 2025
60e2f88
Removed hard-coded bands text
benji-glitsos-ga Feb 6, 2025
78ddfb5
Minor wording
benji-glitsos-ga Feb 6, 2025
ee14ca9
Adjusting spacing
benji-glitsos-ga Feb 6, 2025
8c0f8c4
Used natural language list formatting
benji-glitsos-ga Feb 6, 2025
416aa0e
Added sentence about DEA Hotspots
benji-glitsos-ga Feb 7, 2025
d446e8b
Fixed YAML
benji-glitsos-ga Feb 7, 2025
345c87d
Merge branch 'main' into feature/vector-layers
benji-glitsos-ga Feb 7, 2025
12076a5
Removing the layer attributes from the description
benji-glitsos-ga Feb 7, 2025
aa4a687
Removing the layer attributes from the description
benji-glitsos-ga Feb 7, 2025
3352e0a
Wording
benji-glitsos-ga Feb 7, 2025
646157d
Certainty quality anchor link
benji-glitsos-ga Feb 7, 2025
d7a2f2e
Update docs/data/product/dea-coastlines/_tables.yaml
benji-glitsos-ga Feb 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/_static/styles/global/_utilities.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@
overflow-x: auto;
border: none !important;
}

.margin-bottom-2em {
margin-bottom: 2em;
}
16 changes: 10 additions & 6 deletions docs/_templates/external-data-v1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -269,24 +269,28 @@
:header-rows: 1

* -
- Aliases
- Type
- Units
- Resolution
- CRS
- Nodata
- Units
- Type
- Aliases
- Description
{% for band in valid_bands %}
* - **{{ band.name }}**
- {{ band.aliases|join(', ') if band.aliases else none_text }}
- {{ band.type or not_available_text }}
- {{ band.units or none_text }}
- {{ band.resolution or not_available_text }}
- {{ band.crs or not_available_text }}
- {{ band.nodata }}
- {{ band.units or none_text }}
- {{ band.type or not_available_text }}
- {{ band.aliases|join(', ') if band.aliases else none_text }}
- {{ band.description or none_text }}
{% endfor %}

.. raw:: html

<br />

{{ Specifications.bands.footnotes if Specifications.bands.footnotes }}
{% endif %}
{% endif %}
Expand Down
66 changes: 59 additions & 7 deletions docs/_templates/product-v2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@

{% set bands_count = bands_table_list | length %}

{% set layers_table_list = page.tables.layers_table | selectattr("name", "!=", None) | list %}

{% set layers_count = layers_table_list | length %}

{% set page_title = page.data.short_name if page.data.is_latest_version else format_version_number(page.data.version_number) ~ ". " ~ page.data.short_name %}

{% set display_title = page.data.short_name if page.data.is_latest_version else page.data.short_name ~ " " ~ format_version_number(page.data.version_number) %}
Expand Down Expand Up @@ -368,6 +372,16 @@
* - **Bands**
- `Single band of data ({{ bands_table_list[0].name }}) <./?tab=specifications>`_
{%- endif %}
{% if layers_table_list and layers_count >= 3 %}
* - **Layers**
- `{{ layers_count }} layers of data ({{ layers_table_list[0].name }}, {{ layers_table_list[1].name }}, and more). View their attribute fields. <./?tab=specifications>`_
{%- elif layers_table_list and layers_count == 2 %}
* - **Layers**
- `{{ layers_count }} layers of data ({{ layers_table_list[0].name }} and {{ layers_table_list[1].name }}). View their attribute fields. <./?tab=specifications>`_
{%- elif layers_table_list and layers_count == 1 %}
* - **Layers**
- `Single layer of data ({{ layers_table_list[0].name }}). View attribute fields. <./?tab=specifications>`_
{%- endif %}
{%- if page.data.doi %}
* - **DOI**
- `{{ page.data.doi }} <https://doi.org/{{ page.data.doi }}>`_
Expand Down Expand Up @@ -513,33 +527,71 @@
.. list-table::
:header-rows: 1
:name: bands-table
:class: margin-bottom-2em

* -
- Aliases
- Type
- Units
- Resolution
- No-data
- Units
- Type
- Aliases
- Description
{% for band in bands_table_list %}
* - **{{ band.name }}**
- {{ band.type or no_data_terms.dash }}
- {{ band.units or no_data_terms.dash }}
- {{ band.resolution if band.resolution or band.resolution == 0 else no_data_terms.dash }}
- {{ band.nodata if band.nodata or band.nodata == 0 else "" }}
- {%- if band.aliases %}
{%- for alias in band.aliases %}
| {{ alias }}
{%- endfor %}
{%- else %}
{{ no_data_terms.dash }}
{%- endif %}
- {{ band.resolution if band.resolution or band.resolution == 0 else no_data_terms.dash }}
- {{ band.nodata if band.nodata or band.nodata == 0 else "" }}
- {{ band.units or no_data_terms.dash }}
- {{ band.type or no_data_terms.dash }}
- {{ band.description or no_data_terms.dash }}
{% endfor %}

{{ page.tables.bands_footnote if page.tables.bands_footnote }}
{% endif %}

{% if layers_table_list %}
.. rubric:: Layers
:name: layers
:class: h2

.. raw:: html

<p class="margin-bottom-2em">Vector products contain one or more distinct layers of data, and each layer can contain multiple attribute fields. This product contains the layers {% for layer in layers_table_list %}{%- if loop.last and loop.index > 1 %}, and {% elif loop.index > 1 %}, {% endif -%}<a href="#layer-{{ loop.index }}">{{ layer.name }}</a>{% endfor %}.</p>

{% for layer in layers_table_list %}
.. rubric:: {{ layer.name }}
:name: layer-{{ loop.index }}
:class: h3

{{ layer.description or no_data_terms.dash }}

.. list-table::
:header-rows: 1
:name: layers-table
:class: margin-bottom-2em

* -
- Type
- Units
- Description
{% for attribute in layer.attributes %}
* - **{{ attribute.name }}**
- {{ attribute.type or no_data_terms.dash }}
- {{ attribute.units or no_data_terms.dash }}
- {{ attribute.description }}
{% endfor %}
{% endfor %}

{{ page.tables.layers_footnote if page.tables.layers_footnote }}

{% endif %}

.. rubric:: Product information
:name: product-information
:class: h2
Expand Down
84 changes: 11 additions & 73 deletions docs/data/product/dea-coastlines/_description.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,106 +21,44 @@ The ability to map shoreline positions for each year provides valuable insights

## Technical information

### DEA Coastlines dataset
This product contains five layers of data.

The DEA Coastlines product contains five layers:
* Annual shorelines
* Rates of change points
* Coastal change hotspots (1 km)
* Coastal change hotspots (5 km)
* Coastal change hotspots (10 km)

### Annual shorelines
### Annual shorelines layer (shorelines_annual)

Annual shoreline vectors that represent the median or ‘most representative’ position of the shoreline at approximately 0 m Above Mean Sea Level for each year since 1988 (Figure 1).

Dashed shorelines have low certainty.

Annual shorelines include the following attribute fields:

:::{list-table}

* - `year`
- The year of each annual shoreline.
* - `certainty`
- A column providing important data quality flags for each annual shoreline.
* - `tide_datum`
- The tide datum of each annual shoreline (e.g. "0 m AMSL").
* - `id_primary`
- The name of the annual shoreline's Primary sediment compartment from the [Australian Coastal Sediment Compartments](https://ecat.ga.gov.au/geonetwork/srv/api/records/21a23d9a-00dd-ab19-e053-10a3070a2746) framework.
:::

To understand the `certainty` field, see the [Quality tab](./?tab=quality).
Learn more about this layer in the [Specifications tab](./?tab=specifications).

:::{figure} /_files/cmi/deacl_coastlines.*
:alt: DEA CoastLines coastline layer

Figure 1: Annual coastlines from DEA Coastlines visualised on the [interactive DEA Coastlines web map](https://maps.dea.ga.gov.au/story/DEACoastlines)
:::

### Rates of change points
### Rates of change points layer (rates_of_change)

A point dataset providing robust rates of coastal change for every 30 m along Australia’s non-rocky coastlines (Figure 2). The most recent annual shoreline is used as a baseline for measuring rates of change.

:::{figure} /_files/cmi/deacl_statistics_2.*
:alt: DEA CoastLines rates of change statistics layer

Figure 2: Rates of change points from DEA Coastlines visualised on the [interactive DEA Coastlines web map](https://maps.dea.ga.gov.au/story/DEACoastlines)
:::

On the [interactive DEA Coastlines web map](https://maps.dea.ga.gov.au/story/DEACoastlines), points are shown for locations with statistically significant rates of change (p-value &lt;= 0.01; see `sig_time` below) and good quality data (certainty = "good"; see `certainty` below) only. Each point shows annual rates of change (in metres per year; see `rate_time` below), and an estimate of uncertainty in brackets (95% confidence interval; see `se_time`). For example, there is a 95% chance that a point with a label **\-10.0 m (±1.0 m)** is retreating at a rate of between -9.0 and -11.0 metres per year.

Rates of change points contains the following attribute columns that can be accessed by clicking on labelled points in the web map:

#### Annual shoreline distances

:::{list-table}

* - `dist_1990`, `dist_1991`, etc
- Annual shoreline distances (in metres) relative to the most recent baseline shoreline. Negative values indicate that an annual shoreline was located inland of the baseline shoreline. By definition, the most recent baseline column will always have a distance of 0 m.
:::

#### Rates of change statistics

:::{list-table}

* - `rate_time`
- Annual rates of change (in metres per year) calculated by linearly regressing annual shoreline distances against time (excluding outliers). Negative values indicate retreat and positive values indicate growth.
* - `sig_time`
- Significance (p-value) of the linear relationship between annual shoreline distances and time. Small values (e.g. p-value &lt; 0.01 or 0.05) may indicate a coastline is undergoing consistent coastal change through time.
* - `se_time`
- Standard error (in metres) of the linear relationship between annual shoreline distances and time. This can be used to generate confidence intervals around the rate of change given by *rate\_time* (e.g. 95% confidence interval = *se\_time \* 1.96*)
* - `outl_time`
- Individual annual shoreline are noisy estimators of coastline position that can be influenced by environmental conditions (e.g. clouds, breaking waves, sea spray) or modelling issues (e.g. poor tidal modelling results or limited clear satellite observations). To obtain reliable rates of change, outlier shorelines are excluded using a robust Median Absolute Deviation outlier detection algorithm, and recorded in this column.
:::
Learn more about this layer in the [Specifications tab](./?tab=specifications).

:::{figure} /_files/cmi/deacl_statistics_2.*
:alt: DEA CoastLines rates of change statistics layer

#### Other fields

:::{list-table}

* - `uid`
- A unique [geohash](https://en.wikipedia.org/wiki/Geohash) identifier for each point.
* - `id_primary`
- The name of the point's Primary sediment compartment from the [Australian Coastal Sediment Compartments](https://ecat.ga.gov.au/geonetwork/srv/api/records/21a23d9a-00dd-ab19-e053-10a3070a2746) framework.
* - `certainty`
- A column providing important data quality flags for each point in the dataset (see **Quality assurance** below for more detail about each data quality flag).
* - `sce`
- Shoreline Change Envelope (SCE). A measure of the maximum change or variability across all annual shorelines, calculated by computing the maximum distance between any two annual shorelines (excluding outliers). This statistic excludes sub-annual shoreline variability.
* - `nsm`
- Net Shoreline Movement (NSM). The distance between the oldest (1988) and most recent annual shoreline (excluding outliers). Negative values indicate the coastline retreated between the oldest and most recent shoreline; positive values indicate growth. This statistic does not reflect sub-annual shoreline variability, so will underestimate the full extent of variability at any given location.
* - `max_year`, `min_year`
- The year that annual shorelines were at their maximum (i.e. located furthest towards the ocean) and their minimum (i.e. located furthest inland) respectively (excluding outliers). This statistic excludes sub-annual shoreline variability.
* - `angle_mean`, `angle_std`
- The mean angle and standard deviation between the baseline point to all annual shorelines. This data is used to calculate how well shorelines fall along a consistent line; high angular standard deviation indicates that derived rates of change are unlikely to be correct.
* - `valid_obs`, `valid_span`
- The total number of valid (i.e. non-outliers, non-missing) annual shoreline observations, and the maximum number of years between the first and last valid annual shoreline.
Figure 2: Rates of change points from DEA Coastlines visualised on the [interactive DEA Coastlines web map](https://maps.dea.ga.gov.au/story/DEACoastlines)
:::

### Coastal change hotspots (1 km, 5 km, 10 km)
### Coastal change hotspots layers (hotspots_zoom_1, hotspots_zoom_2, and hotspots_zoom_3)

Three points layers summarising coastal change within moving 1 km, 5 km and 10 km windows along the coastline (Figure 3). These layers are useful for visualising regional or continental-scale patterns of coastal change.

Learn more about this layer in the [Specifications tab](./?tab=specifications).

:::{figure} /_files/cmi/deacl_summary.*
:alt: DEA CoastLines summary layer

Expand Down
112 changes: 100 additions & 12 deletions docs/data/product/dea-coastlines/_tables.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,102 @@
# See the Product metadata fields documentation: https://docs.dev.dea.ga.gov.au/public_services/dea_knowledge_hub/product_metadata_fields.html

# Bands

# bands_footnote: A footnote underneath the table.

# bands_table:
# - name: example_band_name
# aliases: [example_alias_1, example_alias_2]
# resolution: 30 m
# nodata: -999
# units: null
# type: int16
# description: A description of the band.
# Layers

layers_footnote: "For more information on these layers, see the `Description tab <./?tab=description>`_."

layers_table:
- name: shorelines_annual
description: Annual shoreline vectors that represent the median or ‘most representative’ position of the shoreline at approximately 0 m Above Mean Sea Level for each year since 1988.
attributes:
- name: year
type: Integer
units: Date
description: The year of each annual shoreline.
- name: certainty
type: String
units: null
description: A column providing important data quality flags for each annual shoreline. For more information, see the `Quality tab <./?tab=quality#quality-assurance>`_.
- name: tide_datum
type: String
units: null
description: The tide datum of each annual shoreline (e.g. “0 m AMSL”).
- name: id_primary
type: String
units: null
description: The name of the annual shoreline’s Primary sediment compartment from the `Australian Coastal Sediment Compartments <https://ecat.ga.gov.au/geonetwork/srv/api/records/21a23d9a-00dd-ab19-e053-10a3070a2746>`_ framework.

- name: rates_of_change
description: A point dataset providing robust rates of coastal change for every 30 m along Australia’s non-rocky coastlines.
attributes:
- name: uid
type: String
units: null
description: A unique geohash identifier for each point.
- name: rate_time
type: Float
units: Metres per year
description: Annual rates of change (in metres per year) calculated by linearly regressing annual shoreline distances against time (excluding outliers). Negative values indicate retreat and positive values indicate growth.
- name: sig_time
type: Float
units: P-value
description: Significance (p-value) of the linear relationship between annual shoreline distances and time. Small values (e.g. p-value < 0.01 or 0.05) may indicate a coastline is undergoing consistent coastal change through time.
- name: se_time
type: Float
units: Metres
description: Standard error (in metres) of the linear relationship between annual shoreline distances and time. This can be used to generate confidence intervals around the rate of change given by ``rate_time``, e.g. :math:`\text{95% confidence interval} = \text{se_time} \times 1.96`
- name: outl_time
type: String
units: null
description: Individual annual shoreline are noisy estimators of coastline position that can be influenced by environmental conditions (e.g. clouds, breaking waves, sea spray) or modelling issues (e.g. poor tidal modelling results or limited clear satellite observations). To obtain reliable rates of change, outlier shorelines are excluded using a robust Median Absolute Deviation outlier detection algorithm, and recorded in this column.
- name: dist_1990, dist_1991, etc
type: Float
units: Metres
description: Annual shoreline distances (in metres) relative to the most recent baseline shoreline. Negative values indicate that an annual shoreline was located inland of the baseline shoreline. By definition, the most recent baseline column will always have a distance of 0 m.
- name: angle_mean, angle_std
type: Integer
units: Degrees
description: The mean angle and standard deviation between the baseline point to all annual shorelines. This data is used to calculate how well shorelines fall along a consistent line; high angular standard deviation indicates that derived rates of change are unlikely to be correct.
- name: valid_obs
type: Integer
units: null
description: The total number of valid (i.e. non-outliers, non-missing) annual shoreline observations.
- name: valid_span
type: Integer
units: Years
description: The maximum number of years between the first and last valid annual shoreline.
- name: sce
type: Float
units: Metres
description: Shoreline Change Envelope (SCE). A measure of the maximum change or variability across all annual shorelines, calculated by computing the maximum distance between any two annual shorelines (excluding outliers). This statistic excludes sub-annual shoreline variability.
- name: nsm
type: Float
units: Metres
description: Net Shoreline Movement (NSM). The distance between the oldest (1988) and most recent annual shoreline (excluding outliers). Negative values indicate the coastline retreated between the oldest and most recent shoreline; positive values indicate growth. This statistic does not reflect sub-annual shoreline variability, so will underestimate the full extent of variability at any given location.
- name: max_year
type: Integer
units: Date
description: The year that annual shorelines were at their maximum (i.e. located furthest towards the ocean), excluding outliers. This statistic excludes sub-annual shoreline variability.
- name: min_year
type: Integer
units: Date
description: The year that annual shorelines were at their minimum (i.e. located furthest inland), excluding outliers. This statistic excludes sub-annual shoreline variability.
- name: certainty
type: String
units: null
description: A column providing important data quality flags for each point in the dataset. For more information, see the `Quality tab <./?tab=quality>`_.
benji-glitsos-ga marked this conversation as resolved.
Show resolved Hide resolved
- name: id_primary
type: String
units: null
description: The name of the point’s Primary sediment compartment from the `Australian Coastal Sediment Compartments <https://ecat.ga.gov.au/geonetwork/srv/api/records/21a23d9a-00dd-ab19-e053-10a3070a2746>`_ framework.

- name: hotspots_zoom_1, hotspots_zoom_2, and hotspots_zoom_3
description: "**These three layers contain all attributes of the 'rates_of_change' layer, plus the following additional attributes.** These 'hotspots zoom' layers summarise coastal change within moving 1 km, 5 km, and 10 km windows along the coastline (using moving window analysis). The algorithm works by summarising 'hotspots' of significant coastal change (and this is unrelated to `DEA Hotspots </data/product/dea-hotspots/>`_)."
attributes:
- name: radius_m
type: Integer
units: Metres
description: The radius of the moving window used to summarise coastal change around this point.
- name: n
type: Integer
units: null
description: The number of 'rates_of_change' points that were used in the moving window calculation.
Loading