{"id":38643667,"url":"https://github.com/oceanmodeling/stofs-event-dashboard","last_synced_at":"2026-01-17T09:11:01.366Z","repository":{"id":286622924,"uuid":"924854106","full_name":"oceanmodeling/stofs-event-dashboard","owner":"oceanmodeling","description":"stormevent-dev-dashboard","archived":false,"fork":false,"pushed_at":"2025-12-17T15:29:49.000Z","size":788,"stargazers_count":1,"open_issues_count":3,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-30T07:27:06.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oceanmodeling.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-30T19:08:43.000Z","updated_at":"2025-12-17T15:29:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"ce51c3b4-7082-45a0-b47d-393cc1e3c658","html_url":"https://github.com/oceanmodeling/stofs-event-dashboard","commit_stats":null,"previous_names":["oceanmodeling/stofs-event-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oceanmodeling/stofs-event-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanmodeling%2Fstofs-event-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanmodeling%2Fstofs-event-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanmodeling%2Fstofs-event-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanmodeling%2Fstofs-event-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oceanmodeling","download_url":"https://codeload.github.com/oceanmodeling/stofs-event-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanmodeling%2Fstofs-event-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-17T09:11:00.685Z","updated_at":"2026-01-17T09:11:01.350Z","avatar_url":"https://github.com/oceanmodeling.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Preprocess observations and STOFS model data for viewing on sealens-like dashboard.\n\n# Installation\n### Set up conda environment\nThis package has so far been developed and tested using `python 3.12`. If needed, use conda to get this:\n```\n# Download and set up conda:\nwget \"https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh\"\nbash Miniforge3-Linux-x86_64.sh -b -p \"${HOME}/conda\"\nsource \"${HOME}/conda/etc/profile.d/conda.sh\"\nsource \"${HOME}/conda/etc/profile.d/mamba.sh\"\n# Set up a new virtual environment:\nmamba create --name=py312 python=3.12\nmamba activate py312\n```\n### Clone repository\n```\ngit clone https://github.com/oceanmodeling/stofs-event-dashboard.git\n# or\ngit clone git@github.com:oceanmodeling/stofs-event-dashboard.git \n```\n### Install dependencies\n```\ncd stofs-event-dashboard\npython -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n```\n### Test installation\nThe following assumes the repo is installed in the home directory (`~`).\nYou can test the data processing by running with the `test_2025.conf` file:\n```\ncd ~/stofs-event-dashboard/stofs-event-dashboard\npython process_event_data.py ../test_2025.conf\n```\nThis might take some time depending on your system and internet connection. On an AWS instance, it should take a few minutes. When finished, it should create output in `data/tests/test_2025`. You can check that this output is as expected by running:\n```\ncd ~/stofs-event-dashboard/tests\npytest test_check_data.py\n```\nBy default, the test and check data won't appear in the dashboard. However, you could temporarily move/copy them to a different location and they should show up when you run the dashboard (see section \"Run dashboard\" below):\n```\ncd ~/stofs-event-dashboard/tests\ncp -r check_2025/ ../fake_storm_2025\n```\n### Cleanup\nWhen finished, both the `venv` and (if applicable) `conda` environments need to be deactivated:\n```\ndeactivate\n# if needed:\nmamba deactivate\n```\n\n# Usage\n### Pre-process data\nCreate a new config file (copy an existing one) and edit for the new event.\n```\ncd stofs-event-dashboard\npython process-event-data.py \u003cpath_to_config\u003e\n```\nDepending on the event, and the system you run it on, this can take minutes (or even hours) to run. Occasionally, there can be issues with the process (especially with GFS data). In that case, re-running with the same command as above usually works. \n### Run dashboard \nIf running on a remote machine (e.g., AWS, GCP), you need to open a tunnel from your local computer to be able to view the dashboard on a local browser window. \n```\nssh -i ~/.ssh/id_rsa -L8849:localhost:8849 \u003cFirst.Last\u003e@\u003ccluster_ip_address\u003e\n```\nWhether running locally (on your own laptop) or on a remote machine, the command below will start the dashboard. If running remotely, the port number (also repeated at the end of both websocket origins) needs to be the same as in the ssh command above (`8849` in this case).\n```\npython -m panel serve dashboard*.py --dev --address=127.0.0.1 --port=8849 --allow-websocket-origin=localhost:8849 --allow-websocket-origin=127.0.0.1:8849  --log-level debug\n\n# Or, to keep the process running after logging off:\nnohup python -m panel serve dashboard*.py --dev --address=127.0.0.1 --port=8849 --allow-websocket-origin=localhost:8849 --allow-websocket-origin=127.0.0.1:8849  --log-level debug \u0026\n# Alternatively, set up a slurm batch job script.\n\n# open dashboard at:\n# http://127.0.0.1:8849/dashboard\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foceanmodeling%2Fstofs-event-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foceanmodeling%2Fstofs-event-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foceanmodeling%2Fstofs-event-dashboard/lists"}