assetra.system¶
- class assetra.system.EnergySystem(unit_datasets: dict[slice(<class 'type'>, <class 'xarray.core.dataarray.DataArray'>, None)] = {})[source]¶
Class responsible for managing unit datasets (built energy systems)
- Parameters:
(dict[Type (unit_datasets) – xr.Dataset]) : Mapping from derived energy unit type to its associated unit dataset
- property size: float¶
Total number of units in system
- property system_capacity: float¶
Total nameplate capacity of a system
- property unit_datasets: dict[slice(<class 'type'>, <class 'xarray.core.dataset.Dataset'>, None)]¶
Mapping from derived energy unit type to unit dataset
- get_system_by_type(unit_type: list[type] | type) EnergySystem[source]¶
Return a system comprised of the subset of unit datasets corresponding to one (or more) energy unit types.
For example, get a [sub]system with only the responsive or non-responsive units of a system
- Parameters:
unit_type (list[type] | type) – Either a derived energy unit type or a list of derived energy unit types.
- Returns:
- An energy system whose unit datasets are a sub-set of
of this energy system.
- Return type:
- save(directory: Path, overwrite=False) None[source]¶
Save energy system to a directory. Unit datasets are saved as netcdf files
- Parameters:
directory (Path) – Path to which energy system is saved. This path should either be empty or not exist yet.
overwrite (bool, optional) – _description_. Defaults to False.
- class assetra.system.EnergySystemBuilder[source]¶
Class responsible for managing energy units and building energy systems
- property energy_units: tuple[assetra.units.EnergyUnit]¶
Energy units added to builder object
- property size: int¶
Number of energy units added to builder object
- add_unit(energy_unit: EnergyUnit) None[source]¶
Add an energy unit to the system builder object.
- Parameters:
energy_unit (EnergyUnit) – Energy unit to add to system builder
- Raises:
RuntimeWarning – Invalid energy unit type added to system builder
RuntimeWarning – Duplicate unit added to energy system builder
- remove_unit(energy_unit: EnergyUnit) None[source]¶
Remove an energy unit from the system builder object.
- Parameters:
energy_unit (EnergyUnit) – Energy unit to remove from system builder
- build() EnergySystem[source]¶
Return a populated EnergySystem instance. Take energy units added to the builder object, compile each unit type into a unit dataset (fleet), and instantiate an EnergySystem with the resulting unit dataset dictionary.
This is the recommended method to instantiate EnergySystem objects
- Returns:
Populated energy system instance
- Return type:
- static from_energy_system(energy_system: EnergySystem) EnergySystemBuilder[source]¶
Return a populated EnergySystemBuilder instance. Take energy unit datasets from an energy system, convert datasets into individual energy units, and add units to a new EnergySystemBuilder object
This is the inverse to EnergySystem.build, and is useful for modifying energy systems which have been loaded directly from file using the EnergySystem.load function
- Parameters:
energy_system (EnergySystem) – Populated energy system
- Returns:
Populated builder instance
- Return type: