An interactive map showing RMACC (Rocky Mountain Advanced Computing Consortium) member institutions and the NSF Office of Advanced Cyberinfrastructure (OAC) grants active among them.
- All 41 RMACC member institutions plotted on a US map, color-coded by institution type
- Arc lines connecting institutions that share collaborative NSF OAC grants
- Sidebar with grant cards sortable by award value, filterable by grant type
- Grants filtered to a configurable active window (default: May 1, 2025 – April 30, 2026)
The visualization loads from rmacc_grants.json, which is generated by the collector script and committed to this repo.
Data is pulled from the NSF Awards API on demand via GitHub Actions — there is no automatic schedule.
- Go to the Actions tab in this repo
- Click Refresh Grant Data in the left sidebar
- Click the Run workflow button (top right)
- Optionally adjust the date window:
- Window start — grants must still be active after this date (default:
05/01/2025) - Window end — grants must have started before this date (default:
04/30/2026)
- Window start — grants must still be active after this date (default:
- Click Run workflow to start
The job takes roughly 4–5 minutes. When it finishes, it commits an updated rmacc_grants.json to main and the live site reflects the new data automatically.
Grants are collected in three phases to ensure completeness:
- Global OAC query — fetches all NSF OAC division awards active in the date window, then filters to RMACC institutions
- State-based supplemental — queries each of the 9 RMACC states separately to catch any grants the global query may have missed
- Priority PI search — targeted searches by PI name for key RMACC staff (currently: Shelley Knuth)
Phases 2 and 3 exist because the NSF API's institution name matching is imprecise — the belt-and-suspenders approach ensures no RMACC grants are missed.
# Serve the visualization
python3 -m http.server 8765
# Open http://localhost:8765/index.html
# Re-collect grant data
source .venv/bin/activate
python3 rmacc_nsf_collector.py --export
# Custom date window
python3 rmacc_nsf_collector.py --export --window-start 05/01/2026 --window-end 04/30/2027
# Run tests
python3 -m pytest test_rmacc_nsf_collector.py -v| File | Description |
|---|---|
index.html |
D3.js + TopoJSON interactive map visualization |
rmacc_nsf_collector.py |
NSF Awards API collector (stdlib only, Python 3.7+) |
rmacc_grants.json |
Exported grant data loaded by the visualization |
test_rmacc_nsf_collector.py |
Test suite for the collector script |
.github/workflows/refresh-grants.yml |
GitHub Actions on-demand refresh workflow |