Open suvayu opened 5 months ago
(WIP) ToDos IF we want Tulipa to match ESDL:
Missing from ESDL:
@datejada the table in the top post documents the mapping from Tulipa terminology to ESDL, but only for assets. Could you compile a similar table for Tulipa flows to ESDL transport assets (what we talked about yesterday, the connections). For now I'll come up with something generic based on my best guess.
@datejada Nothing useful in the Transport
assets :frowning_face:
In [56]: {k: v for k, v in vars(hn).items() if not k.startswith("_") and v}
Out[56]:
{'name': <pyecore.valuecontainer.EValue at 0x7f99987dd2e0>,
'id': <pyecore.valuecontainer.EValue at 0x7f99987dec30>,
'area': <pyecore.valuecontainer.EValue at 0x7f99987de930>,
'geometry': <pyecore.valuecontainer.EValue at 0x7f99987def90>,
'port': EOrderedSet([<esdl.esdl.InPort object at 0x7f999875a030>, <esdl.esdl.OutPort object at 0x7f99987593d0>])}
In [57]: {k: v for k, v in vars(gn).items() if not k.startswith("_") and v}
Out[57]:
{'name': <pyecore.valuecontainer.EValue at 0x7f999875ac60>,
'id': <pyecore.valuecontainer.EValue at 0x7f999ba51340>,
'area': <pyecore.valuecontainer.EValue at 0x7f9998758290>,
'geometry': <pyecore.valuecontainer.EValue at 0x7f99987590d0>,
'port': EOrderedSet([<esdl.esdl.InPort object at 0x7f9998df24b0>, <esdl.esdl.OutPort object at 0x7f9998cdce00>])}
In [58]: gn
Out[58]: <esdl.esdl.GasNetwork at 0x7f9998759880>
In [59]: hn
Out[59]: <esdl.esdl.HeatNetwork at 0x7f99987f3170>
name
& id
are just identifiersarea
points to the region that has the transport assetgeometry
is (lat,lon)port
is as list of EnergyAsset
s connected to itLooks like there are useful, attributes, but they are all optional.
In [70]: [a for a in dir(gn) if not a.startswith("_")]
Out[70]:
['KPIs',
'aggregated',
'aggregationCount',
'area',
'assetType',
'behaviour',
'bufferDistance',
'capacity',
'commissioningDate',
'constraint',
'containingAsset',
'containingBuilding',
'controlStrategy',
'costInformation',
'dataSource',
'decommissioningDate',
'description',
'efficiency',
'fullLoadHours',
'geometry',
'id',
'installationDuration',
'isOwnedBy',
'manufacturer',
'material',
'name',
'operationalHours',
'originalIdInSource',
'owner',
'port',
'pressure',
'sector',
'shortName',
'state',
'surfaceArea',
'technicalLifetime']
@suvayu I have updated the table in the first comment of this issue.
My takeaway with the mapping to ESDL is that we will only take the basic information, and there will be a set of default values that TulipaEnergyModel will need to run properly (that a user can edit/change after the ESDL basic information import). It is okay to continue like that since ESDL is meant to describe energy assets data and not to be the interface of an optimization model like Tulipa.
@suvayu as we discussed, all ESDL networks are hub assets in Tulipa:
Using this to track my progress updating the ESDL file:
capacity (MWh)
/maxDischargeRate (MW)
in
or somethingout
or something*The efficiency from the asset goes to the outgoing flow. For assets connected to two carriers, then, we need two different efficiencies between the input and outputs; ESDL has electrical efficiency and heat efficiency (but not for all assets; we need to double-check), For heat pumps -> COP to efficiency and other conventions assets -> Efficiency to efficiency ** The charging and discharging efficiencies are defined in the asset but must be mapped to the flow asset data.
We can do multiple efficiencies using this InputOutputRelation feature. It doesn't exist yet in the MapEditor, but it's in ESDL and we can push for it to be added to the MapEditor:
Originally posted by @clizbe in https://github.com/TulipaEnergy/TulipaIO.jl/issues/1#issuecomment-1939125728