Solar๏ƒ

class emflow.assets.solar.FixedMount(surface_tilt: float = 0.0, surface_azimuth: float = 0.0)[source]๏ƒ

Bases: object

surface_tilt: float = 0.0๏ƒ
surface_azimuth: float = 0.0๏ƒ
class emflow.assets.solar.SingleAxisTrackerMount(axis_tilt: float = 0.0, axis_azimuth: float = 0.0, max_angle: float | tuple = 90.0, backtrack: bool = True, gcr: float = 0.2857142857142857, cross_axis_tilt: float = 0.0, racking_model: str | None = None, module_height: float | None = None)[source]๏ƒ

Bases: object

axis_tilt: float = 0.0๏ƒ
axis_azimuth: float = 0.0๏ƒ
max_angle: float | tuple = 90.0๏ƒ
backtrack: bool = True๏ƒ
gcr: float = 0.2857142857142857๏ƒ
cross_axis_tilt: float = 0.0๏ƒ
racking_model: str | None = None๏ƒ
module_height: float | None = None๏ƒ
class emflow.assets.solar.PVArray(*, id: uuid.UUID = <factory>, name: str | None = None, timeseries: list[timedatamodel.timeseries.TimeSeries] = <factory>, geometry: shapely.geometry.base.BaseGeometry | None = None, extra: dict = <factory>, lat: dataclasses.InitVar[float | None] = None, lon: dataclasses.InitVar[float | None] = None, commissioning_date: datetime.date | None = None, members: list[energydatamodel.element.Element] = <factory>, tz: datetime.tzinfo | None = None, capacity: float | None = None, surface_azimuth: float | None = None, surface_tilt: float | None = None, surface_area: float | None = None, efficiency: float | None = None, module: str | None = None, module_type: str = 'glass_polymer', module_parameters: dict | pandas.Series | None = None, temperature_model_parameters: dict | pandas.Series | None = None)[source]๏ƒ

Bases: NodeAsset

capacity: float | None = None๏ƒ
surface_azimuth: float | None = None๏ƒ
surface_tilt: float | None = None๏ƒ
surface_area: float | None = None๏ƒ
efficiency: float | None = None๏ƒ
module: str | None = None๏ƒ
module_type: str = 'glass_polymer'๏ƒ
module_parameters: dict | Series | None = None๏ƒ
temperature_model_parameters: dict | Series | None = None๏ƒ
add_child(obj: Element) None๏ƒ

Attach a child. Override in subclasses that support children.

property centroid: Point | None๏ƒ

Centroid of geometry, or None if no geometry.

children() list๏ƒ

Child elements for tree walking. Override in subclasses with children.

commissioning_date: date | None = None๏ƒ
classmethod from_json(data: dict) Element๏ƒ

Deserialize from a JSON-compatible dict.

geometry: BaseGeometry | None = None๏ƒ
geometry_to_geojson(geometry)๏ƒ
index()๏ƒ

Build a dict[UUID, Element] index of the subtree rooted at self.

Use to resolve Reference objects against this tree.

lat: InitVar[float | None] = None๏ƒ
property latitude: float | None๏ƒ

Latitude, if geometry is a shapely Point; else None.

lon: InitVar[float | None] = None๏ƒ
property longitude: float | None๏ƒ

Longitude, if geometry is a shapely Point; else None.

name: str | None = None๏ƒ
to_dataframe()๏ƒ
to_geojson(exclude_none: bool = True)๏ƒ
to_json(*, exclude_fields: set | None = None) dict๏ƒ

Serialize to a JSON-compatible dict.

to_properties() dict๏ƒ

Domain-specific fields as a dict (excludes infra + children fields).

to_tree() str๏ƒ

Return the hierarchy rendered as an indented tree string.

Use print(element.to_tree()) to display it. In a notebook, printing the element directly (element) also renders the tree via __repr__.

tz: datetime.tzinfo | None = None๏ƒ
members: list[Element]๏ƒ
id: UUID๏ƒ
timeseries: list[TimeSeries]๏ƒ
extra: dict๏ƒ
class emflow.assets.solar.PVSystem(*, id: ~uuid.UUID = <factory>, name: str | None = None, timeseries: list[~timedatamodel.timeseries.TimeSeries] = <factory>, geometry: ~shapely.geometry.base.BaseGeometry | None = None, extra: dict = <factory>, lat: dataclasses.InitVar[float | None] = None, lon: dataclasses.InitVar[float | None] = None, commissioning_date: ~datetime.date | None = None, members: list[~energydatamodel.element.Element] = <factory>, tz: ~datetime.tzinfo | None = None, capacity: float | None = None, surface_azimuth: float | None = None, surface_tilt: float | None = None, albedo: float | None = None, surface_type: str | None = None, module_parameters: dict | None = None, inverter_parameters: dict | None = None, module_type: str = 'glass_polymer', racking_model: str = 'open_rack')[source]๏ƒ

Bases: NodeAsset

A PV system โ€” an Asset that contains PVArray members.

Stored in the inherited members list. Attach arrays explicitly with pv_system.members.append(PVArray(...)) or via add_child(...) โ€” no auto-creation.

capacity: float | None = None๏ƒ
surface_azimuth: float | None = None๏ƒ
surface_tilt: float | None = None๏ƒ
albedo: float | None = None๏ƒ
surface_type: str | None = None๏ƒ
module_parameters: dict | None = None๏ƒ
inverter_parameters: dict | None = None๏ƒ
module_type: str = 'glass_polymer'๏ƒ
racking_model: str = 'open_rack'๏ƒ
to_pvlib(**kwargs)[source]๏ƒ
add_child(obj: Element) None๏ƒ

Attach a child. Override in subclasses that support children.

property centroid: Point | None๏ƒ

Centroid of geometry, or None if no geometry.

children() list๏ƒ

Child elements for tree walking. Override in subclasses with children.

commissioning_date: date | None = None๏ƒ
classmethod from_json(data: dict) Element๏ƒ

Deserialize from a JSON-compatible dict.

geometry: BaseGeometry | None = None๏ƒ
geometry_to_geojson(geometry)๏ƒ
index()๏ƒ

Build a dict[UUID, Element] index of the subtree rooted at self.

Use to resolve Reference objects against this tree.

lat: InitVar[float | None] = None๏ƒ
property latitude: float | None๏ƒ

Latitude, if geometry is a shapely Point; else None.

lon: InitVar[float | None] = None๏ƒ
property longitude: float | None๏ƒ

Longitude, if geometry is a shapely Point; else None.

name: str | None = None๏ƒ
to_dataframe()๏ƒ
to_geojson(exclude_none: bool = True)๏ƒ
to_json(*, exclude_fields: set | None = None) dict๏ƒ

Serialize to a JSON-compatible dict.

to_properties() dict๏ƒ

Domain-specific fields as a dict (excludes infra + children fields).

to_tree() str๏ƒ

Return the hierarchy rendered as an indented tree string.

Use print(element.to_tree()) to display it. In a notebook, printing the element directly (element) also renders the tree via __repr__.

tz: datetime.tzinfo | None = None๏ƒ
members: list[Element]๏ƒ
id: UUID๏ƒ
timeseries: list[TimeSeries]๏ƒ
extra: dict๏ƒ
class emflow.assets.solar.SolarPowerArea(*, id: ~uuid.UUID = <factory>, name: str | None = None, timeseries: list[~timedatamodel.timeseries.TimeSeries] = <factory>, geometry: ~shapely.geometry.base.BaseGeometry | None = None, extra: dict = <factory>, lat: dataclasses.InitVar[float | None] = None, lon: dataclasses.InitVar[float | None] = None, commissioning_date: ~datetime.date | None = None, members: list[~energydatamodel.element.Element] = <factory>, tz: ~datetime.tzinfo | None = None, capacity: float | ~pandas.DataFrame | None = None)[source]๏ƒ

Bases: NodeAsset

A solar-power-potential area.

The areaโ€™s polygon lives in the inherited geometry field.

capacity: float | DataFrame | None = None๏ƒ
to_geojson(exclude_none: bool = True)[source]๏ƒ
property geojson๏ƒ
add_child(obj: Element) None๏ƒ

Attach a child. Override in subclasses that support children.

property centroid: Point | None๏ƒ

Centroid of geometry, or None if no geometry.

children() list๏ƒ

Child elements for tree walking. Override in subclasses with children.

commissioning_date: date | None = None๏ƒ
classmethod from_json(data: dict) Element๏ƒ

Deserialize from a JSON-compatible dict.

geometry: BaseGeometry | None = None๏ƒ
geometry_to_geojson(geometry)๏ƒ
index()๏ƒ

Build a dict[UUID, Element] index of the subtree rooted at self.

Use to resolve Reference objects against this tree.

lat: InitVar[float | None] = None๏ƒ
property latitude: float | None๏ƒ

Latitude, if geometry is a shapely Point; else None.

lon: InitVar[float | None] = None๏ƒ
property longitude: float | None๏ƒ

Longitude, if geometry is a shapely Point; else None.

name: str | None = None๏ƒ
to_dataframe()๏ƒ
to_json(*, exclude_fields: set | None = None) dict๏ƒ

Serialize to a JSON-compatible dict.

to_properties() dict๏ƒ

Domain-specific fields as a dict (excludes infra + children fields).

to_tree() str๏ƒ

Return the hierarchy rendered as an indented tree string.

Use print(element.to_tree()) to display it. In a notebook, printing the element directly (element) also renders the tree via __repr__.

tz: datetime.tzinfo | None = None๏ƒ
members: list[Element]๏ƒ
id: UUID๏ƒ
timeseries: list[TimeSeries]๏ƒ
extra: dict๏ƒ