How sel-columbia/networkplanner works
NetworkPlanner is an electricity-infrastructure planning framework whose central web workflow lets users submit scenarios, process them with selectable metric and network models, then retrieve results. The README also documents CLI operation, standalone or distributed processing, and extensible metric and network builders. Source excerpts and the SOURCE INDEX support the main module relationships; some worker and queue wiring is documented only at a high level, so uncertain implementation links are omitted.
Main entry points: __init__.py Scenario model · routing.py Web routes · scenarios.py Scenario controller · demand.py Demand models
Components 20
Web application
- Web routes
np/config/routing.py - Scenario controller
np/controllers/scenarios.py - People controller
np/controllers/people.py - Job and processor views
np/controllers/jobs.py
Scenario processing
- Scenario model
np/model/__init__.py - Metric framework
np/lib/metric/__init__.py - Demand models
np/lib/metric/mvMax5/demand.py - Finance metrics
np/lib/metric/mvMax2/finance.py - Demographic metrics
np/lib/metric/mvMax2/demographics.py - Metric variable cache
np/lib/variable_store.py - Network framework
np/lib/network/__init__.py - Kruskal builder
np/lib/network/modKruskal/__init__.py
Data and persistence
- Scenario datasets
np/lib/dataset_store.py - Geospatial I/O
np/lib/geometry_store.py - Storage utilities
np/lib/store.py - Relational database
Processing operations
- Scenario processors
utilities/processor.py - CLI scenario runner
utilities/script_process.py - RabbitMQ
Other components
- User
Connections 21
- User → Web routes: requests pages
np/config/routing.py - Web routes → Scenario controller: routes scenarios
np/config/routing.py - Web routes → People controller: routes accounts
np/config/routing.py - Web routes → Job and processor views: routes jobs
np/config/routing.py - Scenario controller → Scenario model: submits scenarios
np/controllers/scenarios.py - Scenario controller → Metric framework: selects metric model
np/controllers/scenarios.py - Scenario controller → Network framework: selects network model
np/controllers/scenarios.py - Scenario model → Metric framework: applies metrics
np/model/__init__.py - Scenario model → Network framework: builds network
np/model/__init__.py - Metric framework → Demand models: loads model
- Demand models → Finance metrics: uses finance metrics
np/lib/metric/mvMax5/demand.py - Demand models → Demographic metrics: uses demographic metrics
np/lib/metric/mvMax5/demand.py - Demand models → Metric variable cache: uses variable cache
np/lib/metric/mvMax5/demand.py - Network framework → Kruskal builder: supports builder
np/lib/network/modKruskal/__init__.py - Scenario model → Scenario datasets: creates dataset
np/model/__init__.py - Scenario datasets → Geospatial I/O: uses geospatial I/O
np/lib/dataset_store.py - Scenario datasets → Storage utilities: uses storage helpers
np/lib/dataset_store.py - Scenario model → Relational database: persists scenarios
- Scenario processors → Scenario model: loads model
utilities/processor.py - CLI scenario runner → Scenario model: runs scenarios
utilities/script_process.py - RabbitMQ → Scenario processors: dispatches work