Skip to content

ResearchComputing/RMACC_Visualization

Repository files navigation

RMACC NSF OAC Grant Visualization

An interactive map showing RMACC (Rocky Mountain Advanced Computing Consortium) member institutions and the NSF Office of Advanced Cyberinfrastructure (OAC) grants active among them.

What it shows

  • 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.

Refreshing the grant data

Data is pulled from the NSF Awards API on demand via GitHub Actions — there is no automatic schedule.

Steps

  1. Go to the Actions tab in this repo
  2. Click Refresh Grant Data in the left sidebar
  3. Click the Run workflow button (top right)
  4. 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)
  5. 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.

How the collection works

Grants are collected in three phases to ensure completeness:

  1. Global OAC query — fetches all NSF OAC division awards active in the date window, then filters to RMACC institutions
  2. State-based supplemental — queries each of the 9 RMACC states separately to catch any grants the global query may have missed
  3. 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.

Running locally

# 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

Files

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

About

A visualization of RMACC member CISE/OAC grants - sourced from the NSF API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors