Feat/trinidad feeder pipeline - #58
Merged
Merged
Conversation
Parcel data acquisition: - Add attribute-mapping layer (parcel_sources.py) decoupling source columns from ParcelModel field population; OSM mapper is the default so existing behavior is unchanged. - Add parcels_from_gis() to fetch building/parcel features from a public ArcGIS FeatureServer REST endpoint (no Esri login required). - ParcelsFromGeodataframe now accepts an optional mapper and name_column. Feeder / substation boundaries: - split_substations_into_feeders() tiles a service-area polygon into one cell per substation, then splits each by relative area (smallest->3, largest->8). - substation_boundaries.py tiles a polygon into non-overlapping cells, one per substation found inside it. Overpass failover: - Consolidate Overpass mirror failover into shift.utils.overpass and remove the duplicated logic from openstreet_roads and the MCP parcels/roads tools.
Add a parallel feeder DistributionSystem build pipeline (feeder_models.py) that splits a service area into substation/feeder cells, builds each feeder's graph with the substation as source, and right-sizes equipment against a gdmloader CatalogSystem (conductors converted to matrix branch equipment via GeometryBranchEquipment.to_matrix_representation). Configurable via a pydantic FeederModelConfig loaded from TOML, including GIS (ArcGIS FeatureServer), GeoDataFrame, OSM, and PBF parcel sources. Fixes found while building real models for Trinidad, CO: - substation.py: Overpass mirror failover + per-polygon cache, form-encoded POST (406), valid GeoJSON features, OSM voltage tag parser - parcel_sources.py: ArcGIS point geometry normalization - get_cluster.py: GeoLocation point parcels in centroid_and_area_m2 - catalog_utils.py / edge_equipment_mapper.py: phase (line-to-ground) transformer voltage matching, split-phase center-tapped synthesis, source voltage line-to-line - graph: connect disconnected components to the source (radial), empty road fallbacks, road-tree secondary, substation merge for near-coincident OSM ways - openstreet_roads.py: pyosmium bbox extraction fallback and robust graph_from_xml (retain_all) when the osmium CLI is unavailable Add scripts/plot_feeders.py to render all feeders as one interactive HTML map with primary/secondary/load coloring.
github-actions Bot
pushed a commit
that referenced
this pull request
Sep 1, 2026
…er-pipeline Feat/trinidad feeder pipeline
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Summary
Related issue number
Checklist