Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion changelog.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# EWB Python SDK examples
## [0.7.0] - UNRELEASED
### Breaking Changes
* None.
* Updated `zepben.ewb` now requires `mrid` when constructing any `IdentifiedObject`.

### New Features
* None.
Expand Down
36 changes: 18 additions & 18 deletions docs/docs/build_network_hierarchy.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,23 @@ from zepben.evolve import NetworkHierarchy, GeographicalRegion, SubGeographicalR
First, you will need to create instances of Feeders, Substations, Circuits, Loops, and Geographical and Sub-Geographical Regions to represent the components of the network hierarchy.

```python
fdr1 = Feeder(name="Sydney feeder 1")
fdr2 = Feeder(name="Sydney feeder 2")
fdr3 = Feeder(name="Sydney feeder 3")
fdr4 = Feeder(name="Newcastle feeder 1")
fdr5 = Feeder(name="Newcastle feeder 2")
fdr6 = Feeder(name="Newcastle feeder 3")

sub1 = Substation(name="Sydney substation 1")
sub2 = Substation(name="Sydney substation 2", normal_energized_feeders=[fdr1, fdr2, fdr3])
sub3 = Substation(name="Newcastle substation", normal_energized_feeders=[fdr4, fdr5, fdr6])

circuit_sydney = Circuit(end_substations=[sub1, sub2])
loop_sydney = Loop(circuits=[circuit_sydney], substations=[sub1], energizing_substations=[sub2])
sgr_sydney = SubGeographicalRegion(name="Sydney", substations=[sub1, sub2])
sgr_newcastle = SubGeographicalRegion(name="Newcastle", substations=[sub3])

gr_nsw = GeographicalRegion(name="New South Wales", sub_geographical_regions=[sgr_sydney, sgr_newcastle])
fdr1 = Feeder(mrid="sf1", name="Sydney feeder 1")
fdr2 = Feeder(mrid="sf2", name="Sydney feeder 2")
fdr3 = Feeder(mrid="sf3", name="Sydney feeder 3")
fdr4 = Feeder(mrid="nf1", name="Newcastle feeder 1")
fdr5 = Feeder(mrid="nf2", name="Newcastle feeder 2")
fdr6 = Feeder(mrid="nf3", name="Newcastle feeder 3")

sub1 = Substation(mrid="ss1", name="Sydney substation 1")
sub2 = Substation(mrid="ss2", name="Sydney substation 2", normal_energized_feeders=[fdr1, fdr2, fdr3])
sub3 = Substation(mrid="ns1", name="Newcastle substation", normal_energized_feeders=[fdr4, fdr5, fdr6])

circuit_sydney = Circuit(mrid="sc1", end_substations=[sub1, sub2])
loop_sydney = Loop(mrid="sl1", circuits=[circuit_sydney], substations=[sub1], energizing_substations=[sub2])
sgr_sydney = SubGeographicalRegion(mrid="ssgr", name="Sydney", substations=[sub1, sub2])
sgr_newcastle = SubGeographicalRegion(mrid="nsgr", name="Newcastle", substations=[sub3])

gr_nsw = GeographicalRegion(mrid="nsw", name="New South Wales", sub_geographical_regions=[sgr_sydney, sgr_newcastle])
```

## Build Network Hierarchy
Expand Down Expand Up @@ -78,4 +78,4 @@ for gr in network_hierarchy.geographical_regions.values():

Output:

![](./assets/network_hierarchy_ex1.png)
![](./assets/network_hierarchy_ex1.png)
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ authors = [
{name = "Zeppelin Bend", email = "oss@zepben.com"}
]
dependencies = [
"zepben.eas==0.26.0",
"zepben.ewb==1.0.3",
"zepben.eas==0.27.0b1",
"zepben.ewb==1.1.0b14",
"numba==0.60.0",
"geojson==2.5.0",
"gql[requests]==3.4.1",
"gql[requests]==3.5.3",
"geopandas",
"pandas",
"shapely",
Expand Down
30 changes: 15 additions & 15 deletions src/zepben/examples/building_network_hierarchy.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,23 @@

# A network hierarchy describes the high-level hierarchy of the network.

fdr1 = Feeder(name="Sydney feeder 1")
fdr2 = Feeder(name="Sydney feeder 2")
fdr3 = Feeder(name="Sydney feeder 3")
fdr4 = Feeder(name="Newcastle feeder 1")
fdr5 = Feeder(name="Newcastle feeder 2")
fdr6 = Feeder(name="Newcastle feeder 3")
fdr1 = Feeder(mrid="sf1", name="Sydney feeder 1")
fdr2 = Feeder(mrid="sf2", name="Sydney feeder 2")
fdr3 = Feeder(mrid="sf3", name="Sydney feeder 3")
fdr4 = Feeder(mrid="nf1", name="Newcastle feeder 1")
fdr5 = Feeder(mrid="nf2", name="Newcastle feeder 2")
fdr6 = Feeder(mrid="nf3", name="Newcastle feeder 3")

sub1 = Substation(name="Sydney substation 1")
sub2 = Substation(name="Sydney substation 2", normal_energized_feeders=[fdr1, fdr2, fdr3])
sub3 = Substation(name="Newcastle substation", normal_energized_feeders=[fdr4, fdr5, fdr6])
sub1 = Substation(mrid="ss1", name="Sydney substation 1")
sub2 = Substation(mrid="ss2", name="Sydney substation 2", normal_energized_feeders=[fdr1, fdr2, fdr3])
sub3 = Substation(mrid="ns1", name="Newcastle substation", normal_energized_feeders=[fdr4, fdr5, fdr6])

circuit_sydney = Circuit(end_substations=[sub1, sub2])
loop_sydney = Loop(circuits=[circuit_sydney], substations=[sub1], energizing_substations=[sub2])
sgr_sydney = SubGeographicalRegion(name="Sydney", substations=[sub1, sub2])
sgr_newcastle = SubGeographicalRegion(name="Newcastle", substations=[sub3])
circuit_sydney = Circuit(mrid="sc1", end_substations=[sub1, sub2])
loop_sydney = Loop(mrid="sl1", circuits=[circuit_sydney], substations=[sub1], energizing_substations=[sub2])
sgr_sydney = SubGeographicalRegion(mrid="ssgr", name="Sydney", substations=[sub1, sub2])
sgr_newcastle = SubGeographicalRegion(mrid="nsgr", name="Newcastle", substations=[sub3])

gr_nsw = GeographicalRegion(name="New South Wales", sub_geographical_regions=[sgr_sydney, sgr_newcastle])
gr_nsw = GeographicalRegion(mrid="nsw", name="New South Wales", sub_geographical_regions=[sgr_sydney, sgr_newcastle])

network_hierarchy = NetworkHierarchy(
geographical_regions={gr_nsw.mrid: gr_nsw},
Expand All @@ -45,4 +45,4 @@
for sub in sgr.substations:
print(f" - {sub.name}")
for fdr in sub.feeders:
print(f" - {fdr.name}")
print(f" - {fdr.name}")
4 changes: 2 additions & 2 deletions src/zepben/examples/current_state_manipulations.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ async def zone_bus_trace(client: NetworkConsumerClient):

print(f"creating bus for {[feeder.mrid for it in feeder_heads for feeder in it.normal_feeders]}...")
# There is no subtrans in the model we pulled down so create a zone bus for all the feeders.
bus = BusbarSection()
bus_terminal = Terminal()
bus = BusbarSection(mrid="zone-bus")
bus_terminal = Terminal(mrid="zone-bus-t1")
bus.add_terminal(bus_terminal)

for it in feeder_head_other_terms:
Expand Down
4 changes: 2 additions & 2 deletions src/zepben/examples/network_service_interactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,8 @@
# Apart from identified objects, a `NetworkService` also supports names. Each identified object has
# exactly one mRID, but can have any number of names. Each name has a name type. In this example,
# we add two names of type "NMI" to the network model.
meter1 = Meter()
meter2 = Meter()
meter1 = Meter(mrid="meter1")
meter2 = Meter(mrid="meter2")

name_type = NameType(name="NMI", description="National Meter Identifier")
name_type.get_or_add_name("987654321", line)
Expand Down
4 changes: 2 additions & 2 deletions src/zepben/examples/translating_to_pandapower_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ async def main():

def add_energy_source(_network: NetworkService, connect_to_terminal: Terminal):
bv = connect_to_terminal.conducting_equipment.base_voltage
es_t = Terminal(phases=connect_to_terminal.phases)
es = EnergySource(terminals=[es_t], base_voltage=bv)
es_t = Terminal(mrid=f"{connect_to_terminal.mrid}-es-t1", phases=connect_to_terminal.phases)
es = EnergySource(mrid=f"{connect_to_terminal.mrid}-es", terminals=[es_t], base_voltage=bv)
_network.add(es_t)
_network.add(es)
_network.connect_terminals(es_t, connect_to_terminal)
Expand Down
Loading