Generate standalone Leaflet dashboards for Swiss city opportunity analysis.
The generator reads city-specific GeoJSON files from data/ and writes an HTML
dashboard to maps/.
For a city slug such as uzwil, provide:
data/uzwil_employers.geojsondata/uzwil_polygons.geojsondata/uzwil_people_per_day.geojsonThe modal split panel reads shared values from data/MS.json:
{
"MIV": null,
"LV": null,
"OV": null
}
An optional Swiss-wide potential layer can be supplied as:
data/CH_potential.xlsxThe workbook must include longitude and latitude columns. When a dashboard is
generated, the script converts this Excel file into a point layer and filters it
to the current city/canton polygon boundary, so only local records are embedded
in that dashboard.
python3 scripts/generate_dashboard.py uzwil
This writes:
maps/uzwil_dashboard.html
You can customize the display name:
python3 scripts/generate_dashboard.py uzwil --city-name "Uzwil"
The CH potential popup and selected-site panel include an estimated revenue value using:
1100 * employee_count * all_modal_split_miv_pct * (miv_pace_good_pct + miv_pace_great_pct)
If data/<city>_people_per_day.geojson is missing, the script can extract the
embedded GeoJSON from maps/<city>_people_per_day.html and save it into data/.