You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a prototype web interface to interact with the gust front detection algorithm found [here](https://github.com/firelab/NFGDA).
4
4
5
-
# How To Run
5
+
##How To Run
6
6
7
-
First time running project?
8
-
1. Navigate to project directory containing `docker-compose.yml'
9
-
2. Run `docker compose up -d --build'
10
-
3. Navigate to http://localhost:5173
11
-
4. Play widdit
7
+
First time running the project?
12
8
9
+
1. Clone this repo and navigate to project directory containing `docker-compose.yml`
10
+
2. Run `docker compose up -d --build`
11
+
3. Open http://localhost:5173 in your browser
12
+
13
+
- See the browser console for additional logs.
13
14
- To re-launch app, run `docker compose up -d`
14
15
- To restart docker containers, run `docker compose restart -d`
15
16
17
+
## Frontend
16
18
17
-
# Frontend
19
+
The frontend is a React app built using Vite. `frontend/src/` contains all the logic. The top-level component is `App.jsx`.
18
20
21
+
## Backend (/backend and /nfgda_service)
19
22
20
-
# Backend
23
+
Backend directory structure:
21
24
22
-
Backend directory structure:
23
25
- app.py contains the API endpoints
24
26
- /apis contains the API endpoint definitions
25
27
- API call logic defined in src/
26
-
- src/ contains the backend logic (Not responsible for API endpoints that orchestrate or handle HTTP requests - Contains the business logic of the application only)
28
+
- src/ contains the backend logic (Not responsible for API endpoints that orchestrate or handle HTTP requests. Contains the business logic of the application only)
29
+
30
+
NFGDA Service directory structure:
27
31
32
+
- /nfgda_service contains the NFGDA service logic
33
+
- /nfgda_service/algorithm contains the original NFGDA code and script with some slight tweaks
34
+
- responsible for all NFGDA execution, output processing, and file management
28
35
29
-
# Todo (before MSU handoff)
36
+
And then there's a redis instance living at port 6379 where all the job status and asset information is stored.
30
37
31
-
- Guard against short jobs that run forever for some reason
32
-
- Figure out zoom level / blank frame issue on frontend
33
-
- Switching to a new station view pauses slide deck playthrough
34
-
- Convert geotiff output to cloud-optimized-geotiffs
35
-
- Remove "expired" job files and produced resources after set amount of time
36
-
- Figure out what is a "reasonable" time to run a historical job and set a hard limit
37
-
- Code cleanup / add comments where necessary
38
+
### Todo before MSU handoff
38
39
39
-
# "Nice to have" features
40
+
-[ ] Switching to a new station view pauses slide deck playthrough
41
+
-[ ] Can we pretty up the landing page? Put a title on it somewhere before the research celebration?
42
+
-[ ] Set opacity slider on frontend
43
+
-[ ] Enhance resolution of output on frontend
44
+
-[ ] Add a "clear" button to the map that clears all job assets from the map
45
+
-[ ] Deliver frame time-stamps to the frontend
46
+
-[ ] Switch to cloud-optimized geotiffs
47
+
-[ ] Make some stuff environment variables instead of random variables everywhere
48
+
-[ ] Discuss pixel-width of gust fronts written to output file next team meeting
49
+
-[ ] Diff the NFGDA code used in nfgda_service with the original NFGDA code, see if there are any useful features we're missing out on or bugs we introduced
40
50
51
+
### "Nice to have" features
52
+
53
+
- There a should probably be a warning that shows up for small numbers of assets per job (2 frames produced or less). Maybe if not enough assets are produced, the job request could automatically re-run with a larger time window?
41
54
- Average time to job completion estimator (small addition: new counter in redis, average out)
42
-
- Serve tiles instead of individual GeoTIFFs (big refactor)
55
+
- Serve tiles instead of individual GeoTIFFs (big refactor, honestly might not be worth at as Cloud-optimized-geotiffs are kinda the future anyway)
43
56
- Hash job IDs to make them unguessable, so resources can't be directly accessed via URL (little development effort, likely med/large refactor effort)
44
57
45
58
@@ -50,3 +63,7 @@ Copyright (c) 2026 ROCKY MOUNTAIN RESEARCH STATION (RMRS)
50
63
MISSOULA FIRE SCIENCES LABORATORY
51
64
52
65
66
+
### Todo after MSU handoff (futures devs read this pls)
67
+
68
+
- Check that automatic asset deletion occurs within the timeframe specified (should be 24 hours)
69
+
- Familiarize with the .env file and environment variables, and what they do
0 commit comments