{"id":13948786,"url":"https://github.com/ECCC-MSC/msc-animet","last_synced_at":"2025-07-20T10:32:44.501Z","repository":{"id":41312116,"uuid":"501710654","full_name":"ECCC-MSC/msc-animet","owner":"ECCC-MSC","description":"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.","archived":false,"fork":false,"pushed_at":"2025-07-11T18:59:37.000Z","size":12467,"stargazers_count":17,"open_issues_count":0,"forks_count":8,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-07-18T10:52:06.474Z","etag":null,"topics":["animation","canada","data","visualization","weather","wms"],"latest_commit_sha":null,"homepage":"https://eccc-msc.github.io/msc-animet/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ECCC-MSC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-09T15:31:53.000Z","updated_at":"2025-07-11T18:59:42.000Z","dependencies_parsed_at":"2024-01-13T11:13:45.664Z","dependency_job_id":"0d25bf21-2569-4545-a901-7aa710453703","html_url":"https://github.com/ECCC-MSC/msc-animet","commit_stats":{"total_commits":175,"total_committers":11,"mean_commits":"15.909090909090908","dds":0.6457142857142857,"last_synced_commit":"44dd237f8a593d83f08b924dfd271371c9662e30"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/ECCC-MSC/msc-animet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECCC-MSC%2Fmsc-animet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECCC-MSC%2Fmsc-animet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECCC-MSC%2Fmsc-animet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECCC-MSC%2Fmsc-animet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ECCC-MSC","download_url":"https://codeload.github.com/ECCC-MSC/msc-animet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECCC-MSC%2Fmsc-animet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266111435,"owners_count":23877980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animation","canada","data","visualization","weather","wms"],"created_at":"2024-08-08T05:01:30.896Z","updated_at":"2025-07-20T10:32:44.492Z","avatar_url":"https://github.com/ECCC-MSC.png","language":"JavaScript","funding_links":[],"categories":["Atmosphere"],"sub_categories":["Meteorological Observation and Forecast"],"readme":"# MSC AniMet\n\n## Overview\n\nMSC 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.\n\nMSC 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.\n\nIn its current incarnation, MSC AniMet provides access to [GeoMet-Weather](https://eccc-msc.github.io/open-data/msc-geomet/readme_en/) layers.\n\nA publically available version can be found at [https://eccc-msc.github.io/msc-animet/](https://eccc-msc.github.io/msc-animet/) and the [associated documentation](https://eccc-msc.github.io/open-data/msc-animet/readme_en/) is available via the [Meteorological Service of Canada open data documentation](https://eccc-msc.github.io/open-data/).\n\n## Installation\n\n### Requirements\n\n- Node.js\n\n### Dependencies\n\nDependencies are listed in [package.json](package.json). Dependencies\nare automatically installed during `MSC AniMet` installation.\n\n### Installing msc-animet\n\n```bash\n# clone codebase and install\ngit clone https://github.com/ECCC-MSC/msc-animet.git\ncd msc-animet\nnpm i\n```\n\n## Running\n\n```bash\nnpm run dev\n```\n\nServer will be located at http://localhost:3000/msc-animet/\n\nNote: The path will be different if you changed the BASE_URL in the .env file\n\n## Building for deployment\n\n```bash\nnpm run build\n```\n\n## Development\n\nBugs, enhancements and issues may be posted on [GitHub](https://github.com/ECCC-MSC/msc-animet/issues), but most are managed internally.\n\n### Updating GeoMet-Weather layer tree names\n\nA 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):\n\n```bash\n# Set directory name of your Python virtual environment\nPYTHON_VENV=generate-tree-venv\n\n# Create Python virtual environment\npython3 -m venv --system-site-packages $PYTHON_VENV\n\n# Activate virtual env\n. $PYTHON_VENV/bin/activate\n\n# Install deps\npip install owslib\n\n# Update layers_en|fr.json\ncd ./scripts\npython3 generate_trees_layers_list.py\n```\n\n### Adding custom WMS sources\n\nIf 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](https://www.ogc.org/standard/wms/). The steps are as follows:\n\nFirst, on the [AniMet GitHub page](https://github.com/ECCC-MSC/msc-animet), make yourself a [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo). 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:\n\n```bash\ngit clone https://github.com/YOUR_USERNAME/msc-animet.git\ncd msc-animet\nnpm i\ngit remote add upstream https://github.com/ECCC-MSC/msc-animet.git\n```\n\nAfterwards, 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:\n\n```Python\nwms_sources = {\n    \"Weather\": {\n        \"url\": \"https://geo.weather.gc.ca/geomet\",\n        \"version\": \"1.3.0\"\n        \"display\": True,\n    },\n    \"Climate\": {\n        \"url\": \"https://geo.weather.gc.ca/geomet-climate\",\n        \"version\": \"1.3.0\"\n        \"display\": True,\n    },\n    \"NOAA-Nowcoast\": {\n        \"url\": \"https://nowcoast.noaa.gov/geoserver/ows\",\n        \"version\": \"1.3.0\",\n        \"query_pattern\": \"https://nowcoast.noaa.gov/geoserver{LAYER}/ows\",\n        \"no_translations\": True,\n        \"display\": True,\n    },\n}\n```\n\nOptionally:\n\n- Set `no_translations` to `True` if you don't have french/english versions of these names inside both `common.json` files.\n- Also, if the source you are adding contains a specific pattern to query layers individually, set the `query_pattern` parameter\n  with `{LAYER}` so the app knows how to make such queries.\n\nOnce 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](#updating-geomet-weather-layer-tree-names) and [run](#running) the application, it's that easy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FECCC-MSC%2Fmsc-animet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FECCC-MSC%2Fmsc-animet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FECCC-MSC%2Fmsc-animet/lists"}