Source code for powersimdata.network.constants.region.division
[docs]class DivisionMapping:
"""State/Country mapping for grid models.
:param pandas.DataFrame zone: information on zones of a grid model.
"""
def __init__(self, zone):
self.abv = set(zone["abv"])
self.abv2loadzone = zone.groupby("abv")["zone_name"].apply(set).to_dict()
self.abv2id = zone.reset_index().groupby("abv")["zone_id"].apply(set).to_dict()
self.id2abv = zone["abv"].to_dict()
self.abv2interconnect = dict(zip(zone["abv"], zone["interconnect"]))
[docs]class USADivisionMapping(DivisionMapping):
"""State mapping for USA grid models
:param pandas.DataFrame zone: information on zones of a grid model.
"""
def __init__(self, zone):
super().__init__(zone)
self.state = set(zone["state"])
self.state_abbr = set(zone["abv"])
self.state2loadzone = zone.groupby("state")["zone_name"].apply(set).to_dict()
self.state2abv = dict(zip(zone["state"], zone["abv"]))
self.abv2state = dict(zip(zone["abv"], zone["state"]))
[docs]class EUDivisionMapping(DivisionMapping):
"""Country mapping for EU grid models
:param pandas.DataFrame zone: information on zones of a grid model.
"""
def __init__(self, zone):
super().__init__(zone)
self.country = set(zone["country"])
self.country_abbr = set(zone["country"])
self.country2loadzone = (
zone.groupby("country")["zone_name"].apply(set).to_dict()
)
self.country2abv = dict(zip(zone["country"], zone["abv"]))
self.abv2country = dict(zip(zone["abv"], zone["country"]))
[docs]def get_division_mapping(model, zone):
"""Return division mappings for a grid model.
:param str model: grid model.
:param pandas.DataFrame zone: information on zones of a grid model.
"""
_lookup = {
"usa_tamu": USADivisionMapping,
"hifld": USADivisionMapping,
"europe_tub": EUDivisionMapping,
}
return _lookup[model](zone).__dict__