msc-animet

MSC AniMet is a simple tool enabling users to interact with MSC Open Data weather data and create custom weather animations for any area in the world. The resulting animations can be downloaded and shared with a permalink.

https://github.com/eccc-msc/msc-animet

Science Score: 26.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
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.7%) to scientific vocabulary

Keywords

animation canada data visualization weather wms
Last synced: 6 months ago · JSON representation

Repository

MSC AniMet is a simple tool enabling users to interact with MSC Open Data weather data and create custom weather animations for any area in the world. The resulting animations can be downloaded and shared with a permalink.

Basic Info
Statistics
  • Stars: 16
  • Watchers: 10
  • Forks: 8
  • Open Issues: 0
  • Releases: 23
Topics
animation canada data visualization weather wms
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Security

README.md

MSC AniMet

Overview

MSC AniMet is a simple tool enabling users to interact with MSC Open Data weather data and create custom weather animations for any area in the world. The resulting animations can be downloaded and shared with a permalink.

MSC AniMet can be used to showcase a diversity of weather events such as storms, heat waves, hurricane trajectories, air quality events, extreme wind gusts, and much more.

In its current incarnation, MSC AniMet provides access to GeoMet-Weather layers.

A publically available version can be found at https://eccc-msc.github.io/msc-animet/ and the associated documentation is available via the Meteorological Service of Canada open data documentation.

Installation

Requirements

  • Node.js

Dependencies

Dependencies are listed in package.json. Dependencies are automatically installed during MSC AniMet installation.

Installing msc-animet

```bash

clone codebase and install

git clone https://github.com/ECCC-MSC/msc-animet.git cd msc-animet npm i ```

Running

bash npm run dev

Server will be located at http://localhost:3000/msc-animet/

Note: The path will be different if you changed the BASE_URL in the .env file

Building for deployment

bash npm run build

Development

Bugs, enhancements and issues may be posted on GitHub, but most are managed internally.

Updating GeoMet-Weather layer tree names

A static list of layer names and titles is generated for ease of translation and reference without needing to make a large request for the global WMS GetCapabilities document on application load. A Python script is used to update the /src/locales/{lang}/layers and the /src/assets/trees/tree json files for GeoMet Weather and GeoMet Climate. To update the layer name files, do the following (instructions for Linux):

```bash

Set directory name of your Python virtual environment

PYTHON_VENV=generate-tree-venv

Create Python virtual environment

python3 -m venv --system-site-packages $PYTHON_VENV

Activate virtual env

. $PYTHON_VENV/bin/activate

Install deps

pip install owslib

Update layers_en|fr.json

cd ./scripts python3 generatetreeslayers_list.py ```

Adding custom WMS sources

If you'd like to have your own instance of AniMet with more/other WMS sources for the layer tree, it's also possible, although for it to work they need to comply with the OpenGIS Web Map Service (WMS) Implementation Specification. The steps are as follows:

First, on the AniMet GitHub page, make yourself a Fork. Once that's done, inside a terminal(commands shown are for a linux terminal), we will do the usual installation steps, except we'll be using your newly created fork instead, so:

bash git clone https://github.com/YOUR_USERNAME/msc-animet.git cd msc-animet npm i git remote add upstream https://github.com/ECCC-MSC/msc-animet.git

Afterwards, we'll be changing the configuration file to specify which WMS sources we wish to have. That file is located inside scripts/wms_sources_configs.py and this is where we'll be adding our new sources. This process is quite simple; you simple give it a name, the url to the wms, the version and display to True, which would look like:

Python wms_sources = { "Weather": { "url": "https://geo.weather.gc.ca/geomet", "version": "1.3.0" "display": True, }, "Climate": { "url": "https://geo.weather.gc.ca/geomet-climate", "version": "1.3.0" "display": True, }, "NOAA-Nowcoast": { "url": "https://nowcoast.noaa.gov/geoserver/ows", "version": "1.3.0", "query_pattern": "https://nowcoast.noaa.gov/geoserver{LAYER}/ows", "no_translations": True, "display": True, }, }

Optionally:

  • Set no_translations to True if you don't have french/english versions of these names inside both common.json files.
  • Also, if the source you are adding contains a specific pattern to query layers individually, set the query_pattern parameter with {LAYER} so the app knows how to make such queries.

Once that's done and you've saved the file, inside the terminal, all we have left to do is to run the script to update the layer tree and run the application, it's that easy!

Owner

  • Name: Meteorological Service of Canada
  • Login: ECCC-MSC
  • Kind: organization
  • Location: Canada

GitHub Events

Total
  • Release event: 2
  • Watch event: 2
  • Delete event: 3
  • Issue comment event: 2
  • Push event: 81
  • Pull request review event: 1
  • Pull request event: 91
  • Fork event: 1
  • Create event: 5
Last Year
  • Release event: 2
  • Watch event: 2
  • Delete event: 3
  • Issue comment event: 2
  • Push event: 81
  • Pull request review event: 1
  • Pull request event: 91
  • Fork event: 1
  • Create event: 5

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 240
  • Total Committers: 13
  • Avg Commits per committer: 18.462
  • Development Distribution Score (DDS): 0.742
Past Year
  • Commits: 90
  • Committers: 7
  • Avg Commits per committer: 12.857
  • Development Distribution Score (DDS): 0.344
Top Committers
Name Email Commits
Philippe Theroux t****p@g****a 62
Philippe Theroux t****p@g****a 59
Kevin Ngai k****i@c****a 22
Kevin Ngai n****k@g****a 20
Philippe Theroux a****h@g****a 20
Kevin Ngai a****n@g****a 12
Philippe Theroux a****h@g****a 10
Etienne Pelletier e****r@c****a 9
Kevin Ngai k****i@u****m 9
Geomet user for nightly docker builds g****y@g****a 8
Kevin Ngai a****n@g****a 6
Louis-Philippe Rousseau Lambert l****t@c****a 2
Samanta-Alondra Emes-Lapointe e****s@g****a 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 246
  • Average time to close issues: about 6 hours
  • Average time to close pull requests: about 10 hours
  • Total issue authors: 1
  • Total pull request authors: 5
  • Average comments per issue: 4.0
  • Average comments per pull request: 0.02
  • Merged pull requests: 229
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 103
  • Average time to close issues: about 6 hours
  • Average time to close pull requests: about 11 hours
  • Issue authors: 1
  • Pull request authors: 4
  • Average comments per issue: 4.0
  • Average comments per pull request: 0.01
  • Merged pull requests: 97
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • patrickmmz (1)
Pull Request Authors
  • PhilippeTh (231)
  • Dukestep (7)
  • RousseauLambertLP (4)
  • kngai (3)
  • saemeslapointe (1)
Top Labels
Issue Labels
Pull Request Labels
enhancement (1)

Dependencies

Dockerfile docker
  • develop-stage latest build
  • nginx 1.23.3-alpine build
  • node 18-slim build
docker-compose.yml docker
  • eccc-msc/msc-animet nightly
package-lock.json npm
  • 936 dependencies
package.json npm
  • @mdi/font ^7.1.96 development
  • @mdi/js ^7.1.96 development
  • @vue/cli-plugin-babel ~5.0.8 development
  • @vue/cli-service ~5.0.8 development
  • babel-eslint ^10.1.0 development
  • eslint ^6.7.2 development
  • eslint-plugin-vue ^6.2.2 development
  • node-polyfill-webpack-plugin ^2.0.1 development
  • sass ~1.32.6 development
  • sass-loader ^8.0.2 development
  • vue-cli-plugin-vuetify ~2.5.8 development
  • vue-template-compiler ^2.6.11 development
  • vuetify-loader ^1.3.0 development
  • axios ^0.26.0
  • canvas-txt ^3.0.0
  • core-js ^3.6.5
  • debounce ^1.2.1
  • h264-mp4-encoder ^1.0.12
  • luxon ^2.5.2
  • ol ^6.13.0
  • saxon-js ^2.5.0
  • vue ^2.6.11
  • vue-i18n ^8.18.2
  • vue-router ^3.3.4
  • vuetify ^2.6.14
  • vuex ^3.4.0