modelviewer_hsm

Edito-Infra T7.3 End-to-end demonstrator for aquaculture and maritime industry.

https://github.com/willem0boone/modelviewer_hsm

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: frontiersin.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Edito-Infra T7.3 End-to-end demonstrator for aquaculture and maritime industry.

Basic Info
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 1
Created almost 2 years ago · Last pushed 12 months ago
Metadata Files
Readme License Codemeta

README.md

DOI

Habitat Suitability Model Viewer

About

This project is part of EDITO-INFRA (Grant agreement ID: 101101473): - T7.3: End-to-end demonstrator for aquaculture and maritime industry

Author: Willem Boone | contact: willem.boone@vliz.be

Demo video

Watch the video

Goal

Summary of Demonstrator

The demonstrator use case (DUC) consists of a smartviewer that hosts a model to predict habitat suitability based on environmental living conditions. The smartviewer is based on Carbonplan its seaweed-farming-web/GitHub - seaweed-farming-web.

In this demonstrator, habitat suitability is calculated using a deterministic model that uses minimum and maximum thresholds on the environmental variables. The environmental parameters that are used are:

  • Sea surface temperature
  • Sea surface salinity
  • Bathymetry

The thresholds for all variables can be adopted using slider widgets. On any changing parameter, the suitability map is updated and rendered in the viewer. Using a time slider, environmental parameters for several future climate scenarios can be accessed and converted in suitability maps. This work is available on on GitHub - Editomodelviewer.

Data formatting

The environmental variable dataset used by the smartviewer, need to be provided in a specific format. To create this dataset, different sources and storage from Edito data lake are used. Two pipelines were required: - Downscaling large .zarr datasets to lower resolution. E.g. the bathymetry dataset is around 20GB, which is to large for the demonstrator purpose. - Creating pyramids in which each level has increasing resolution (for optimal zooming/rendering).

This work is available on this GitHub - Editoresamplingdatasts

Building the site

Assuming you already have Node.js installed, you can install the build dependencies as:

shell npm install .

To start a development version of the site, simply run:

shell npm run dev

Visit application in a browser:

http://localhost:5002/model_viewer/habitat_suitability

Simulating Habitat Suitability

The habitat suitability model that is deployed in this viewer is based on the work from Rutendo Musimwa.

Single suitability score

Parameters

Each environmental variable has 5 settings (sliders in the app) that can be adjusted to user choices / species characteristics. - Critical minimum: Below this threshold the species cannot survive. - Optimal minimum: Optimal living conditions above this threshold. - Optimal maximum Optimal living conditions below this threshold. - Critiall maximum: Above this threshold the species cannot survive. - Weight: the fifth parameter indicatest the importance of the variable in the total score (~the weight).

Score

| Environmental variable | Situation | Suitability score | |------- |----- |------------ | | . < critical minimum | The species cannot survive | 0 | | critical minimum < . < optimal minimum | Not optimal but the species can survive | value between 0-1 (linear) | | optimal minimum < . < optimal maximum | Optimal living conditions | 1 | | optimal maximum < . < critical maximum | Not optimal but the species can survive | value between 1-0 (linear) | | critical maximum < . | The species cannot survive | 0 |

Visual this looks likes this:

Habitat suitability graph

Habitat suitability

Habitat suitability is calculated as the weighted average of suitability per environmental variable. Each environmental variable has: - A weight (Wi) representing its importance. - A suitability score (Si) indicating how suitable that variable is.

Index ( i ) represent each environmental variable in the habitat suitability model. <!-- In case the Latex is not rendering fine, this is a description of the formula To calculate the habitat suitability: - Multiply each environmental variable's weight by its corresponding suitability score. (Wi * Si) - Add these values together to get the numerator. (SUM(Wi * Si)) - Sum up all the weights to get the denominator. (SUM(Wi)) - Divide the numerator by the denominator to calculate the habitat suitability. (SUM(Wi * Si) / SUM(Wi))

Notice: GitHub might not support LaTeX. Open the markdown in an .md reader or IDE for proper rendering.
-->

```math \text{Habitat suitability} = \frac{\sum{i=1}^{n} \left( Wi \cdot Si \right)}{\sum{i=1}^{n} W_i}

\

\text{with:}

\begin{align} Wi & \text{ is the weight for environmental variable } i,\ Si & \text{ is the suitability score for environmental variable } i,\ n & \text{ is the number of } i \text{ environmental variables ranging: }[1:n]. \end{align} ```

Presets

The simulation is preconfigured for 3 species which can be selected using checkboxes.

TO DO: add reference for preset values (paper from Rutendo Musimwa in review).

Simulating the future

For future predictions, 3 Shared Socioeconomic Pathways can be selected. Using the time slider, the situation in 2010, 2050 and 2090 can be simulated. In these future simulations, sea surface salinity & sea surface temperature are subject to change, while bathymetry is considered static.

| SSP | Scenario | |------- |----------------- | | SSP119 | Very low GHG emissions:CO2 emissions cut to net zero around 2050. | | SSP245 | Intermediate GHG emissions: CO2 emissions around current levels until 2050, then falling but not reaching net zero by 2100. | | SSP585 | Very high GHG emissions: CO2 emissions triple by 2075. |

Credits

The application makes use of technology developed by Carbonplan: App | GitHub.

Owner

  • Login: willem0boone
  • Kind: user

-

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "{id of the GitHub repo (can be DOI)}",
  "description": "Modelviewer habitat suitability model; created in EDITO-INFRA project T7.3, based on carbonplan maps.",
  "name": "Edito_model_viewer",
  "codeRepository": "https://github.com/willem0boone/Edito_model_viewer",
  "issueTracker": "https://github.com/willem0boone/Edito_model_viewer/issues",
  "license": "MIT License",
  "version": "1.0.0",
  "datePublished": "2024-09-23",
  "dateModified": "",
  "programmingLanguage": [
    {
      "@type": "ComputerLanguage",
      "name": "JavaScript",
      "url": "https://www.javascript.com/"
    }
  ],
  "operatingSystem": "Windows 11",
  "runtimePlatform": [
    "Node.js v20.15.0."
  ],
  "provider": {
    "@id": "https://ror.org/0496vr396",
    "@type": "Organization",
    "name": "Flanders Marine Institute",
    "url": "https://vliz.be/en"
  },
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Willem",
      "familyName": "Boone",
      "email": "willem.boone@vliz.be",
      "@id": "https://orcid.org/0009-0008-0916-6847",
      "orcid": "https://orcid.org/0009-0008-0916-6847"
    }
  ],
  "copyrightHolder": [
    {
      "@type": "Person",
      "givenName": "Willem",
      "familyName": "Boone",
      "email": "willem.boone@vliz.be",
      "@id": "https://orcid.org/0009-0008-0916-6847",
      "orcid": "https://orcid.org/0009-0008-0916-6847"
    }
  ],
  "funder": [
    {
      "@type": "Organization",
      "@id": "https://ror.org/019w4f821",
      "name": "European Union Horizon Europe research and innovation programme under Grant Agreement no 101101473"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Willem",
      "familyName": "Boone",
      "email": "willem.boone@vliz.be",
      "@id": "https://orcid.org/0009-0008-0916-6847",
      "orcid": "https://orcid.org/0009-0008-0916-6847"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@carbonplan/colormaps",
      "name": "@carbonplan/colormaps",
      "version": "^3.0.2"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@carbonplan/components",
      "name": "@carbonplan/components",
      "version": "^11.8.1"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@carbonplan/icons",
      "name": "@carbonplan/icons",
      "version": "^1.1.1"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@carbonplan/layouts",
      "name": "@carbonplan/layouts",
      "version": "^1.5.0"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@carbonplan/maps",
      "name": "@carbonplan/maps",
      "version": "^2.0.1"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@carbonplan/theme",
      "name": "@carbonplan/theme",
      "version": "^7.0.0"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@emotion/react",
      "name": "@emotion/react",
      "version": "^11.7.1"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@emotion/styled",
      "name": "@emotion/styled",
      "version": "^11.6.0"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@mdx-js/react",
      "name": "@mdx-js/react",
      "version": "^1.6.22"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@next/mdx",
      "name": "@next/mdx",
      "version": "^12.0.7"
    },
    "11": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@theme-ui/color",
      "name": "@theme-ui/color",
      "version": "^0.13.1"
    },
    "12": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@theme-ui/core",
      "name": "@theme-ui/core",
      "version": "^0.13.1"
    },
    "13": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@theme-ui/css",
      "name": "@theme-ui/css",
      "version": "^0.13.1"
    },
    "14": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/@theme-ui/match-media",
      "name": "@theme-ui/match-media",
      "version": "^0.13.1"
    },
    "15": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/d3-array",
      "name": "d3-array",
      "version": "^2.12.1"
    },
    "16": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/d3-format",
      "name": "d3-format",
      "version": "^2.0.0"
    },
    "17": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/ndarray",
      "name": "ndarray",
      "version": "^1.0.19"
    },
    "18": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/next",
      "name": "next",
      "version": "^12.0.7"
    },
    "19": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/polished",
      "name": "polished",
      "version": "^4.1.3"
    },
    "20": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/react",
      "name": "react",
      "version": "^17.0.2"
    },
    "21": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/react-animate-height",
      "name": "react-animate-height",
      "version": "^2.0.23"
    },
    "22": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/react-dom",
      "name": "react-dom",
      "version": "^17.0.2"
    },
    "23": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/theme-ui",
      "name": "theme-ui",
      "version": "^0.13.1"
    },
    "24": {
      "@type": "SoftwareApplication",
      "identifier": "https://www.npmjs.com/package/trim",
      "name": "trim",
      "version": ">=0.0.3"
    }
  },
  "keywords": [
    "modelviewer",
    "habitat suitability",
    "EDITO-INFRA"
  ],
  "readme": "https://github.com/willem0boone/Edito_model_viewer#README.md"
}

GitHub Events

Total
  • Push event: 4
Last Year
  • Push event: 4

Dependencies

model/package-lock.json npm
  • 412 dependencies
model/package.json npm
  • microbundle ^0.14.2 development
  • prettier ^2.5.1 development
  • rimraf ^3.0.2 development
package-lock.json npm
  • 563 dependencies
package.json npm
  • @carbonplan/prettier ^1.2.0 development
  • prettier ^2.2.1 development
  • @carbonplan/colormaps ^3.0.2
  • @carbonplan/components ^11.8.1
  • @carbonplan/icons ^1.1.1
  • @carbonplan/layouts ^1.5.0
  • @carbonplan/maps ^2.0.1
  • @carbonplan/theme ^7.0.0
  • @emotion/react ^11.7.1
  • @emotion/styled ^11.6.0
  • @mdx-js/react ^1.6.22
  • @next/mdx ^12.0.7
  • @theme-ui/color ^0.13.1
  • @theme-ui/core ^0.13.1
  • @theme-ui/css ^0.13.1
  • @theme-ui/match-media ^0.13.1
  • d3-array ^2.12.1
  • d3-format ^2.0.0
  • ndarray ^1.0.19
  • next ^12.0.7
  • polished ^4.1.3
  • react ^17.0.2
  • react-animate-height ^2.0.23
  • react-dom ^17.0.2
  • theme-ui ^0.13.1
  • trim >=0.0.3