{"id":18697395,"url":"https://github.com/cassiofb-dev/weather-visualization-tool","last_synced_at":"2025-04-12T07:32:04.124Z","repository":{"id":37051732,"uuid":"496842032","full_name":"cassiofb-dev/weather-visualization-tool","owner":"cassiofb-dev","description":"WVTool stands for Weather Visualization Tool. WVtool is a project that its main goal is to visualize GOES-16 weather data for Rio de Janeiro region. This project is done by CEFET/RJ CC course students.","archived":false,"fork":false,"pushed_at":"2022-08-18T02:35:18.000Z","size":44874,"stargazers_count":2,"open_issues_count":14,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T17:49:33.847Z","etag":null,"topics":["angular","leaflet","nodejs","visualization","weather","weather-app"],"latest_commit_sha":null,"homepage":"https://weather-visualization-tool.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cassiofb-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-27T02:54:39.000Z","updated_at":"2023-11-15T13:18:59.000Z","dependencies_parsed_at":"2022-08-25T09:01:36.439Z","dependency_job_id":null,"html_url":"https://github.com/cassiofb-dev/weather-visualization-tool","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cassiofb-dev%2Fweather-visualization-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cassiofb-dev%2Fweather-visualization-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cassiofb-dev%2Fweather-visualization-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cassiofb-dev%2Fweather-visualization-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cassiofb-dev","download_url":"https://codeload.github.com/cassiofb-dev/weather-visualization-tool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248534029,"owners_count":21120206,"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":["angular","leaflet","nodejs","visualization","weather","weather-app"],"created_at":"2024-11-07T11:24:09.690Z","updated_at":"2025-04-12T07:32:03.715Z","avatar_url":"https://github.com/cassiofb-dev.png","language":"JavaScript","readme":"\u003ch1 align=\"center\"\u003e\n  WVTool\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\n  WVTool - Weather Visualization Tool\n\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#about\"\u003eAbout\u003c/a\u003e •\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e •\n  \u003ca href=\"#workflow\"\u003eWorkflow\u003c/a\u003e •\n  \u003ca href=\"#architecture-diagram\"\u003eArchitecture Diagram\u003c/a\u003e •\n  \u003ca href=\"#project-requirements\"\u003eProject Requirements\u003c/a\u003e •\n  \u003ca href=\"#schedule\"\u003eSchedule\u003c/a\u003e •\n  \u003ca href=\"#credits\"\u003eCredits\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n![cefet](https://i.imgur.com/K0E5iFC.jpg)\n\n## About\n\nWVTool stands for Weather Visualization Tool. WVtool is a project that its main goal\nis to visualize GOES-16 weather data for Rio de Janeiro region. This project is done\nby CEFET/RJ CC course students.\n\n## Features\n\n* Interactive Weather Map\n  * Zoom in\n  * Zoom out\n  * Translation\n* Multilayer\n  * Select different map layers\n  * Select different weather features layers\n\n## Install\n\nFor running this project locally you will need to install:\n\n1. [Git](https://github.com/git/git)\n2. [Node.js](https://nodejs.org/en/)\n\n```bash\n# Clone the repository\ngit clone https://github.com/cassiofb-dev/weather-visualization-tool\n\n# Go into project directory\ncd weather-visualization-tool\n\n# Go into frontend directory\ncd frontend\n\n# Install frontend dependencies\nnpm i\n\n# Start frontend application\nnpm start\n```\n\n## Workflow\n\nFor deploying new code on production enviroment, the WVTool's team uses [Vercel](https://vercel.com) for the frontend. This project uses 3 types of enviroments:\n\n1. Production - Code found in master branch, stable releases.\n2. Preview - Code found in dev branch where the new features are gathered. If no bugs are found and the team approve the changes it goes into master then production enviroment.\n3. Staging - Code found in each individual feature branch, this helps isolating a feature for testing. In case that no bugs are found, the team can approve this branch to go into dev then the code will be deployed to preview enviroment.\n\nBelow is a image to better visualization of this project workflow.\n\n![workflow](https://i.imgur.com/dQhte2C.png)\n\n## Architecture Diagram\n\nAs this project uses geospatial data, the WSM protocol. The following explanation and image are from the academic paper: Walker, A. \u0026 Pham, Binh \u0026 Maeder, Anthony. (2004). A bayesian framework for automated dataset retrieval in geographic Information Systems. Proceedings - 10th International Multimedia Modelling Conference, MMM 2004. 138- 144. 10.1109/MULMM.2004.1264978.\n\n\u003e WMS provides the ability to download maps from WMS servers, thus, allowing different datasets from different WMS servers as well as local data to easily be combined into single map visualization. WMS uses client-server architecture as shown in Figure 1.\n\n![wms-archtecture](https://i.imgur.com/sGRPi4s.png)\n\n## Project Requirements\n\nThe original requirement document can be found in this [link](https://github.com/cassiofb-dev/weather-visualization-tool/tree/master/docs/assets/PCS2022.1-Projeto1-wvtool_compressed.pdf).\n\n### Functional Requirements\n\n1. As a background resource, the app must allow users to configurate the local data repository.\n   1. The data must not be alterated in comparison to its font.\n2. The app must consume the weather data in local repository.\n3. The user can choose the weather variable.\n4. The app main view must have 3 layers:\n   1. Layer 1: Rio de Janeiro map.\n   2. Layer 2: Weather geospatial  data in timelapse animation.\n   3. Layer 3: 7x7 Grid over Rio de Janeiro area.\n5. The app must allow user controls like: zoom in, zoom out and translation.\n6. The app main view must be a timelapse wather geospatial data animation. It must show the evolution of the choosed weather variable:\n   1. The animation must show data grouped by a time interval of 15 minutes.\n   2. The animation must be controlled by a control bar.\n   3. The control bar must allow users to define the inital and final datetime.\n   4. The control bar must allow users to pause visualization.\n   5. The control bar must allow users to skip to the previos or next period.\n7. The app must have, as auxiliary views, plot of the geospatial data provided by weather stations:\n   1. Each plot must be linked to a dropdown that allows users to choose one of the 49 grid cells.\n   2. The plot must show the data linked to weather station observations in the selected grid area.\n   3. Each plot must show the precipitation data as a line plot in which the x axis contains the time dimension and y axis contains the observation value.\n   4. The plot must evolve as an animation that is linked to the main view time and the current time in the main view must be the central time in the auxiliary view.\n   5. In each animated interation, the auxiliary view plot must show the observations of the 12 previous and next periods.\n8. The app must allow users to download the animation as a animated gif or a png image of the current interation.\n\n### Non-functional Requirements\n\n1. Beside the app source code, the items bellow must also be included as tasks:\n   1. \u003ca href=\"#install\"\u003eInstallation and configuration documentation\u003c/a\u003e.\n   2. \u003ca href=\"#architecture-diagram\"\u003eArchitecture diagram\u003c/a\u003e.\n   3. Class diagram.\n2. The app development must be evolutive and versioned on github.\n3. The github repository must be shared to show the app evolution.\n4. The first task must be done as a read me markdown file on github.\n5. The tasks 1.2, 1.3 and 1.4 must be in docs directiory.\n## Schedule\n\n| **Task** | **22/05** | **23/05** | **24/05** | **25/05** | **26/05** | **27/05** | **28/05** | **29/05** | **30/05** | **31/05** | **01/06** | **02/06** | **03/06** | **04/06** | **05/06** | **06/06** | **07/06** | **08/06** | **09/06** | **10/06** | **11/06** | **12/06** | **13/06** | **14/06** | **15/06** | **16/06** | **17/06** | **18/06** | **19/06** | **20/06** | **21/06** | **22/06** | **23/06** | **24/06** | **25/06** | **26/06** | **27/06** | **28/06** | **29/06** | **30/06** | **01/07** | **02/07** | **03/07** | **04/07** | **05/07** | **06/07** | **07/07** | **08/07** | **09/07** | **10/07** | **11/07** | **12/07** | **13/07** | **14/07** | **15/07** | **16/07** |\n|:--------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|\n|    #01   |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |\n|    #02   |           |           |           |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |\n|    #03   |           |           |           |           |           |           |           |           |           |           |           |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |\n|    #04   |           |           |           |           |           |           |           |           |           |           |           |           |           |           |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |\n|    #05   |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |\n|    #06   |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |\n|    #07   |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |           |           |           |           |           |           |           |\n|    #08   |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |           |           |           |           |           |           |           |\n|    #09   |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |           |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |     ⚫     |\n\n### Schedule Task Legend\n\n1. Sprint 01 (2022/05/22 - 2022/06/04)\n   1. #01 Main view\n   2. #02 Local install documentation\n   3. #03 Architecture diagram\n2. Sprint 02 (2022/06/05 - 2022/06/18)\n   1. #04 Main view animation\n   2. #05 API development\n   3. #06 Class diagram\n3. Sprint 03 (2022/06/19 - 2022/07/02)\n   1. #07 Auxiliary view\n4. Sprint 04 (2022/07/03 - 2022/07/16)\n   1. #08 Auxiliary view\n   2. #09 Data download\n\n## Credits\n\nThis app uses the following open source projects:\n\n* [Git](https://github.com/git/git)\n* [Node.js](https://nodejs.org/en/)\n* [Angular](https://github.com/angular/angular)\n* [Leaflet](https://github.com/Leaflet/Leaflet)\n\n## License\n\nMIT\n\n---\n\n\u003e Vitória Santos [@viisantos](https://github.com/viisantos) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e Cásio Fernando [@cassiofb-dev](https://github.com/cassiofb-dev) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e Dennis [@dennissrn](https://twitter.com/dennissrn)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcassiofb-dev%2Fweather-visualization-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcassiofb-dev%2Fweather-visualization-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcassiofb-dev%2Fweather-visualization-tool/lists"}