尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A reproducible geospatial model for analyzing school boundary scenarios in South Portland, Maine.
Models the Kaler closure scenario and optimizes the remaining school zone boundaries to:
1. Respect hard capacity constraints — no school exceeds its enrollment cap
2. Maximize community continuity — contiguous zones; bussed neighbors go together
3. Minimize travel distance — walkability and drive time factored into assignments
The interactive webapp (see webapp/) shows community and grade-center boundary options
for the Kaler-closed scenario.檢視完整 README ↗A reproducible geospatial model for analyzing school boundary scenarios in South Portland, Maine.
Models the Kaler closure scenario and optimizes the remaining school zone boundaries to:
The interactive webapp (see webapp/) shows community and grade-center boundary options
for the Kaler-closed scenario.
Three-stage assignment algorithm:
Uses OSM road networks (via OSMnx) for real walk/drive distance matrices.
| School | Capacity | Coordinates |
|---|---|---|
| Brown | 260 | 43.6347, -70.2489 |
| Dyer | 240 | 43.6219, -70.2749 |
| Small | 240 | 43.6413, -70.2339 |
| Skillin | 380 | 43.6260, -70.3054 |
| Kaler | 240 | 43.6287, -70.2688 |
Note: Closing Skillin is excluded — remaining four schools (capacity 1,020) cannot absorb all 1,013 K-4 students.
pip install geopandas osmnx folium networkx shapely pandas numpy
python3 run.py
Outputs saved to outputs/:
*_map.html — Interactive folium maps (open in browser)*_boundaries.geojson — Zone boundary polygons*_block_assignments.csv — Per-block assignments with walk/drive distances*_metrics.json — School utilization, walkability %, avg drive timesscenario_summary.csv — Ranked comparison of all scenariosThe webapp supports a grade-center view where PreK–1 students attend one set of schools and Grades 2–4 students attend a different set.
| Zone | PreK–1 school | Cap | Grades 2–4 school | Cap |
|---|---|---|---|---|
| West | Dyer | 240 | Skillin | 380 |
| East | Small | 240 | Brown | 260 ← binding |
The Brown G2-4 cap (260) is the binding constraint — it limits how many students can be assigned to the East zone regardless of the PreK–1 capacity available at Small.
Rather than optimising the PreK–1 and Grades 2–4 zones independently (which produces different boundary lines that could confuse families), the base case uses a single geographic partition for both grade bands. Every block's West/East assignment is identical whether you are looking at the PreK–1 or the 2–4 map.
prek1_full (grade-center with full PreK expansion) uses the same zone geometry as
prek1_current. The extra PreK seats affect only the capacity-utilisation display,
not the boundary itself.
compute_shared_boundaries.py)Starting partition — Load the independently-optimised Grades 2–4 assignments. By construction these satisfy the Brown 260 cap; any K-1 imbalance is then fixed in step 2.
Capacity rebalancing — Iteratively move border blocks from over-capacity zones to under-capacity zones using three escalating move types:
Distance optimisation — Move border blocks to the zone with the lower student-weighted drive cost:
zone_cost = K-1 students × drive_dist_to_prek1_school
+ G2-4 students × drive_dist_to_g24_school
A block is moved only when the new zone has a lower cost and all four capacity constraints remain satisfied after the move.
If you need to regenerate the shared boundaries (e.g. after changing school capacities or block-level student counts):
/opt/anaconda3/bin/python3 compute_shared_boundaries.py
This patches webapp/public/data/kaler_closed.json in-place. Requires geopandas
and shapely (available in the Anaconda environment).
Polygons.geojson — 316 census blocks (2020 Census, South Portland, ME) with population
counts used to estimate student distribution. Block-level race/ethnicity data (2020 Census
PL 94-171) is included to display estimated percent minority students per school zone.