From fb2a41cacd9f4e0e60f52deeca97e9e6b120b51f Mon Sep 17 00:00:00 2001 From: romainsacchi Date: Tue, 20 Aug 2024 19:16:41 +0200 Subject: [PATCH] Align wrt master --- MANIFEST.in | 7 + dev/Untitled1.ipynb | 393 ++++++------ docs/transform.rst | 568 +++++++++--------- premise/__init__.py | 2 +- .../additional_inventories/lci-PV-GaAs.xlsx | Bin 27955 -> 28237 bytes premise/electricity.py | 120 ++-- tests/test_utils.py | 2 +- 7 files changed, 535 insertions(+), 557 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 8e516db8..f6bc07a6 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -31,6 +31,13 @@ include premise/data/metals/*.csv include premise/data/metals/*.yml include premise/data/metals/*.yaml include premise/data/transport/*.yaml +include premise/data/transport/*.csv +include premise/data/transport/bus/*.csv +include premise/data/transport/car/*.csv +include premise/data/transport/truck/*.csv +include premise/data/transport/two-wheeler/*.csv +include premise/data/battery/*.yaml +include premise/data/battery/*.csv include premise/data/GAINS_emission_factors/*.csv include premise/data/GAINS_emission_factors/*.yaml include premise/data/GAINS_emission_factors/iam_data/CLE/*.csv diff --git a/dev/Untitled1.ipynb b/dev/Untitled1.ipynb index ed5f77e5..3e9e9c73 100644 --- a/dev/Untitled1.ipynb +++ b/dev/Untitled1.ipynb @@ -124,207 +124,191 @@ "name": "stdout", "output_type": "stream", "text": [ - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.13591961170485328 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, panel, mounted, on roof 0.06449948400412797 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, panel, mounted, on roof 0.06262085825643492 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.12780097128738177 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.13592496941688187 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.13591961170485328 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.13591961170485328 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, laminated, integrated, on roof 0.06262085825643492 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, laminated, integrated, on roof 0.06449948400412797 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, laminated, integrated, on roof 0.11650485436893204 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, laminated, integrated, on roof 0.12 [] [] []\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.12780097128738177 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.12780097128738177 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.1278026046170821 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, laminated, integrated, on roof 0.11650485436893204 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, laminated, integrated, on roof 0.12 [] [] []\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.12780097128738177 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.13592496941688187 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof 0.1068452168957903 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof 0.10373085301338128 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, laminated, integrated, on roof 0.06262132882459766 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, laminated, integrated, on roof 0.06449948400412797 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.13592496941688187 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.1278026046170821 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, panel, mounted, on roof 0.12 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, panel, mounted, on roof 0.11650485436893204 [] [] []\n", - "photovoltaic plant construction, 570kWp, multi-Si, on open ground 0.13338013338013338 0.24 0.183 0.3\n", - "photovoltaic plant construction, 570kWp, multi-Si, on open ground 0.1294952751263431 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof 0.1068452168957903 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof 0.10373322028717505 0.23 0.1755 0.2925\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.1278026046170821 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.13591961170485328 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, panel, mounted, on roof 0.12 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, ribbon-Si, panel, mounted, on roof 0.11650485436893204 [] [] []\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.13592496941688187 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.13591961170485328 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.12780097128738177 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.1278026046170821 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, panel, mounted, on roof 0.06449948400412797 [] [] []\n", - "photovoltaic slanted-roof installation, 3kWp, a-Si, panel, mounted, on roof 0.06262132882459766 [] [] []\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.1399972000559989 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.13592496941688187 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof 0.08737948912125361 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof 0.0900009000090001 0.226 0.22 0.25\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.13163668275559456 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.1278026046170821 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof 0.1059135039717564 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof 0.10909090909090909 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 1.3 MWp, multi-Si, panel, mounted, on roof 0.1747570205272285 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 156 kWp, multi-Si, on roof 0.1799993076949704 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 156 kWp, multi-Si, on roof 0.1747566289894362 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 156 kWp, single-Si, on roof 0.195 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 156 kWp, single-Si, on roof 0.18932038834951456 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 280 kWp, multi-Si, on roof 0.17999485728979173 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 280 kWp, multi-Si, on roof 0.17475970540506802 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 280 kWp, single-Si, on roof 0.19499965178633608 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 280 kWp, single-Si, on roof 0.18931710615280595 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 324 kWp, multi-Si, on roof 0.18 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 324 kWp, multi-Si, on roof 0.17475728155339806 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof 0.15534382767191382 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof 0.16 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof 0.15534382767191382 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof 0.16 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof 0.17822135091783997 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof 0.17999640007199855 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof 0.17822135091783997 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof 0.17999640007199855 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3 kWp, micro-Si, laminated, integrated, on roof 0.0970873786407767 0.13 0.1 0.15625\n", - "photovoltaic slanted-roof installation, 3 kWp, micro-Si, laminated, integrated, on roof 0.1 0.13 0.1 0.15625\n", - "photovoltaic slanted-roof installation, 3 kWp, micro-Si, panel, mounted, on roof 0.1 0.13 0.1 0.15625\n", - "photovoltaic slanted-roof installation, 3 kWp, micro-Si, panel, mounted, on roof 0.0970873786407767 0.13 0.1 0.15625\n", - "photovoltaic flat-roof installation, 450 kWp, single-Si, on roof 0.19499935000216667 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 450 kWp, single-Si, on roof 0.1893222264293828 0.27 0.20475 0.3\n", - "photovoltaic open ground installation, 560 kWp, single-Si, on open ground 0.1893235065418033 0.27 0.20475 0.3\n", - "photovoltaic open ground installation, 569 kWp, multi-Si, on open ground 0.17475966706594181 0.24 0.183 0.3\n", - "photovoltaic open ground installation, 570 kWp, CIS, on open ground 0.1553387474791519 0.23 0.1755 0.2925\n", - "photovoltaic open ground installation, 570 kWp, CdTe, on open ground 0.17821967920457743 0.226 0.22 0.25\n", - "photovoltaic open ground installation, 570 kWp, micro-Si, on open ground 0.0970873786407767 0.13 0.1 0.15625\n", - "photovoltaic open ground installation, 570 kWp, multi-Si, on open ground 0.17475549560045375 0.24 0.183 0.3\n", - "photovoltaic open ground installation, 570 kWp, multi-Si, on open ground 0.17475549560045375 0.24 0.183 0.3\n", - "photovoltaic open ground installation, 570 kWp, single-Si, on open ground 0.1893184535671582 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, multi-Si, laminated, integrated, on roof 0.17475618693274708 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, multi-Si, laminated, integrated, on roof 0.17999883871716957 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, multi-Si, panel, mounted, on roof 0.17999883871716957 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, multi-Si, panel, mounted, on roof 0.17475618693274708 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, single-Si, laminated, integrated, on roof 0.18932068481159536 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, single-Si, laminated, integrated, on roof 0.19500125807263272 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, single-Si, panel, mounted, on roof 0.19500125807263272 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 93 kWp, single-Si, panel, mounted, on roof 0.18932068481159536 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic flat-roof installation, 3kWp, single-Si, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof 0.16 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof 0.15534382767191382 0.23 0.1755 0.2925\n", - "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof 0.17822135091783997 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof 0.17999640007199855 0.226 0.22 0.25\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17999640007199855 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof 0.17475388827401409 0.24 0.183 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.19499512512187195 0.27 0.20475 0.3\n", - "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof 0.18932222642938282 0.27 0.20475 0.3\n", - "photovoltaic installation, 0.28kWp, GaAs 0.013066405338559897 0.28 0.25 0.28\n", - "photovoltaic installation, 0.28kWp, GaAs 0.012686330478908976 0.28 0.25 0.28\n", - "photovoltaic panel installation, 0.5kWp, perovskite 0.25 0.252 0.22 0.3\n" + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.13591961170485328 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.12780097128738177 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.13592496941688187 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.13591961170485328 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.13591961170485328 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.12780097128738177 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.12780097128738177 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.1278026046170821 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.12780097128738177 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.13592496941688187 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof CIS 0.1068452168957903 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof CIS 0.10373085301338128 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.13592496941688187 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.1278026046170821 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic plant construction, 570kWp, multi-Si, on open ground multi-Si 0.13338013338013338 0.24 0.183 0.3\n", + "photovoltaic plant construction, 570kWp, multi-Si, on open ground multi-Si 0.1294952751263431 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof CIS 0.1068452168957903 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof CIS 0.10373322028717505 0.23 0.1755 0.2925\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.1278026046170821 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.13591961170485328 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.13592496941688187 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.13591961170485328 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.12780097128738177 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.1278026046170821 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.1399972000559989 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.13592496941688187 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof CdTe 0.08737948912125361 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof CdTe 0.0900009000090001 0.226 0.22 0.25\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.13163668275559456 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.1278026046170821 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof CdTe 0.1059135039717564 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof CdTe 0.10909090909090909 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 1.3 MWp, multi-Si, panel, mounted, on roof multi-Si 0.1747570205272285 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 156 kWp, multi-Si, on roof multi-Si 0.1799993076949704 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 156 kWp, multi-Si, on roof multi-Si 0.1747566289894362 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 156 kWp, single-Si, on roof single-Si 0.195 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 156 kWp, single-Si, on roof single-Si 0.18932038834951456 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 280 kWp, multi-Si, on roof multi-Si 0.17999485728979173 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 280 kWp, multi-Si, on roof multi-Si 0.17475970540506802 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 280 kWp, single-Si, on roof single-Si 0.19499965178633608 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 280 kWp, single-Si, on roof single-Si 0.18931710615280595 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 324 kWp, multi-Si, on roof multi-Si 0.18 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 324 kWp, multi-Si, on roof multi-Si 0.17475728155339806 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof CIS 0.15534382767191382 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof CIS 0.16 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof CIS 0.15534382767191382 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3 kWp, CIS, laminated, integrated, on roof CIS 0.16 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof CdTe 0.17822135091783997 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof CdTe 0.17999640007199855 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof CdTe 0.17822135091783997 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3 kWp, CdTe, panel, mounted, on roof CdTe 0.17999640007199855 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3 kWp, micro-Si, laminated, integrated, on roof micro-Si 0.0970873786407767 0.13 0.1 0.15625\n", + "photovoltaic slanted-roof installation, 3 kWp, micro-Si, laminated, integrated, on roof micro-Si 0.1 0.13 0.1 0.15625\n", + "photovoltaic slanted-roof installation, 3 kWp, micro-Si, panel, mounted, on roof micro-Si 0.1 0.13 0.1 0.15625\n", + "photovoltaic slanted-roof installation, 3 kWp, micro-Si, panel, mounted, on roof micro-Si 0.0970873786407767 0.13 0.1 0.15625\n", + "photovoltaic flat-roof installation, 450 kWp, single-Si, on roof single-Si 0.19499935000216667 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 450 kWp, single-Si, on roof single-Si 0.1893222264293828 0.27 0.20475 0.3\n", + "photovoltaic open ground installation, 560 kWp, single-Si, on open ground single-Si 0.1893235065418033 0.27 0.20475 0.3\n", + "photovoltaic open ground installation, 569 kWp, multi-Si, on open ground multi-Si 0.17475966706594181 0.24 0.183 0.3\n", + "photovoltaic open ground installation, 570 kWp, CIS, on open ground CIS 0.1553387474791519 0.23 0.1755 0.2925\n", + "photovoltaic open ground installation, 570 kWp, CdTe, on open ground CdTe 0.17821967920457743 0.226 0.22 0.25\n", + "photovoltaic open ground installation, 570 kWp, micro-Si, on open ground micro-Si 0.0970873786407767 0.13 0.1 0.15625\n", + "photovoltaic open ground installation, 570 kWp, multi-Si, on open ground multi-Si 0.17475549560045375 0.24 0.183 0.3\n", + "photovoltaic open ground installation, 570 kWp, multi-Si, on open ground multi-Si 0.17475549560045375 0.24 0.183 0.3\n", + "photovoltaic open ground installation, 570 kWp, single-Si, on open ground single-Si 0.1893184535671582 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17475618693274708 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17999883871716957 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, multi-Si, panel, mounted, on roof multi-Si 0.17999883871716957 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, multi-Si, panel, mounted, on roof multi-Si 0.17475618693274708 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, single-Si, laminated, integrated, on roof single-Si 0.18932068481159536 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, single-Si, laminated, integrated, on roof single-Si 0.19500125807263272 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, single-Si, panel, mounted, on roof single-Si 0.19500125807263272 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 93 kWp, single-Si, panel, mounted, on roof single-Si 0.18932068481159536 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, laminated, integrated, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, multi-Si, panel, mounted, at building multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, laminated, integrated, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic facade installation, 3kWp, single-Si, panel, mounted, at building single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, multi-Si, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic flat-roof installation, 3kWp, single-Si, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof CIS 0.16 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3kWp, CIS, panel, mounted, on roof CIS 0.15534382767191382 0.23 0.1755 0.2925\n", + "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof CdTe 0.17822135091783997 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3kWp, CdTe, laminated, integrated, on roof CdTe 0.17999640007199855 0.226 0.22 0.25\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, laminated, integrated, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17999640007199855 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, multi-Si, panel, mounted, on roof multi-Si 0.17475388827401409 0.24 0.183 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, laminated, integrated, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.19499512512187195 0.27 0.20475 0.3\n", + "photovoltaic slanted-roof installation, 3kWp, single-Si, panel, mounted, on roof single-Si 0.18932222642938282 0.27 0.20475 0.3\n", + "photovoltaic installation, 0.28kWp, GaAs GaAs 0.28 0.28 0.25 0.28\n", + "photovoltaic installation, 0.28kWp, GaAs GaAs 0.28 0.28 0.25 0.28\n", + "photovoltaic panel installation, 0.5kWp, perovskite perovskite 0.25 0.252 0.22 0.3\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Processing scenarios: 100%|█████████████| 1/1 [00:23<00:00, 23.98s/it]" + "Processing scenarios: 100%|█████████████| 1/1 [00:24<00:00, 24.09s/it]" ] }, { @@ -916,7 +900,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "ae500bd7-bbe7-4620-b50c-700041ca807b", "metadata": {}, "outputs": [], @@ -928,7 +912,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "d034ab28-3cb3-491f-affe-00198fc7ec6e", "metadata": {}, "outputs": [ @@ -937,12 +921,13 @@ "output_type": "stream", "text": [ "ds photovoltaic installation, 0.28kWp, GaAs photovoltaic installation, GaAs\n", - "photovoltaic installation, 0.28kWp, GaAs 1\n", - "market for inverter, 2.5kW 0.224\n", - "market for photovoltaic mounting system, for slanted-roof installation 0.9999999999999999\n", - "market for photovoltaics, electric installation for 3kWp module, at building 1\n", - "metal organic vapor phase epitaxy (MOVPE), for GaAs photovoltaic panel 1.0\n", - "market group for electricity, low voltage 0.23\n" + "photovoltaic installation, 0.28kWp, GaAs 1 None None None\n", + "market for inverter, 2.5kW 0.224 0 None None\n", + "market for photovoltaic mounting system, for slanted-roof installation 1.0 5 0.8928571428571428 1.0\n", + "market for photovoltaics, electric installation for 3kWp module, at building 0.04666573335199963 0 None None\n", + "epitaxial lift-off (ELO) 0.01 0 None None\n", + "market for photovoltaic cell, single-Si wafer 1.0 5 0.8928571428571428 1.0\n", + "market group for electricity, low voltage 0.010733118670959916 None None None\n" ] } ], @@ -951,7 +936,7 @@ " if ds[\"name\"].startswith(\"photovoltaic installation, 0.28kWp, GaAs\"):\n", " print(\"ds\", ds[\"name\"], ds[\"reference product\"])\n", " for e in ds[\"exchanges\"]:\n", - " print(e[\"name\"], e[\"amount\"])" + " print(e[\"name\"], e[\"amount\"], e.get(\"uncertainty type\"), e.get(\"minimum\"), e.get(\"maximum\"))" ] }, { diff --git a/docs/transform.rst b/docs/transform.rst index d0858b09..4c54742d 100644 --- a/docs/transform.rst +++ b/docs/transform.rst @@ -5,7 +5,7 @@ A series of transformations are applied to the Life Cycle Inventory (LCI) databa and technology market shares with the outputs from the Integrated Assessment Model (IAM) scenario. Mobile batteries -"""""""""""""""" +++++++++++++++++ Inventories for several battery technologies for mobile applications are provided in *premise*. See EXTRACT/Import of additional inventories/Li-ion batteries for @@ -132,7 +132,7 @@ under https://github.com/polca/premise/blob/master/premise/data/battery/scenari Stationary batteries -"""""""""""""""""""" +++++++++++++++++++++ Inventories for several battery technologies for stationary applications are provided: @@ -217,7 +217,7 @@ market for battery capacity, stationary (TC scenario) GLO Vanadium R capacity needed in high voltage electricity markets. Biomass -""""""" ++++++++ Run @@ -295,7 +295,7 @@ and transport it to the powerplant, but no other forestry-related burden is incl Power generation -"""""""""""""""" +++++++++++++++++ Run @@ -607,7 +607,7 @@ Regional electricity markets ---------------------------- High voltage regional markets -============================= +----------------------------- *premise* creates high, medium and low-voltage electricity markets for each IAM region. It starts by creating high-voltage markets and define the share of each supplying technology @@ -668,7 +668,7 @@ ecoinvent). This is not ideal as it supposes that future country-specific production volumes will remain the same in respect to one another. High voltage regional markets for aluminium smelters -==================================================== +---------------------------------------------------- Aluminium production is a significant consumer of electricity. In the ecoinvent database, aluminium smelters are represented by @@ -716,10 +716,8 @@ regional mixes defined by the International Energy Agency (IEA). .. _IAI Beyond 2 Degrees Aluminium Roadmap: https://international-aluminium.org/resource/aluminium-sector-greenhouse-gas-pathways-to-2050-2021/ - - Storage -======= +------- If the IAM scenario requires the use of storage, *premise* adds a storage dataset to the high voltage market. *premise* can add two types of storage: @@ -741,7 +739,7 @@ The efficiency of the H2-fed gas turbine is based on the parameters of Ozawa_ et Medium voltage regional markets -=============================== +------------------------------- The workflow is not too different from that of high voltage markets. There are however only two possible providers of electricity in medium @@ -753,7 +751,7 @@ market to itself. Distribution losses are modelled the same way as for high voltage markets and are added to the input from high voltage market. Low voltage regional markets -============================ +---------------------------- Low voltage regional markets receive an input from the medium voltage market, as well as from residential photovoltaic power. @@ -818,7 +816,7 @@ The rest of the modelling is similar to that of regular regional electricity markets described above. Original market datasets -======================== +------------------------ Market datasets originally present in the ecoinvent LCI database are cleared from any inputs. Instead, an input from the newly created regional market @@ -840,14 +838,14 @@ regional market, which "includes" it in terms of geography. ============================================ =========== ================ =========== Relinking -========= +--------- Once the new markets are created, *premise* re-links all electricity-consuming activities to the new regional markets. The regional market it re-links to depends on the location of the consumer. Cement production -""""""""""""""""" ++++++++++++++++++ The modelling of future improvements in the cement sector is relatively simple at the moment, and does not involve the emergence of new @@ -873,7 +871,7 @@ Run ndb.update("cement") Dataset proxies -+++++++++++++++ +--------------- *premise* duplicates clinker production datasets in ecoinvent (called "clinker production") so as to create a proxy dataset for each IAM region. @@ -886,7 +884,7 @@ in different fields, such as that of *production volume*. Efficiency adjustment -+++++++++++++++++++++ +--------------------- *premise* then adjusts the thermal efficiency of the process. It does so by calculating the technology-weighted energy requirements @@ -939,7 +937,7 @@ at a fix emission rate of 525 kg CO2/t clinker. Carbon Capture and Storage -++++++++++++++++++++++++++ +-------------------------- If the IAM scenario indicates that a share of the CO2 emissions for the cement sector in a given region and year is sequestered and stored, @@ -975,7 +973,7 @@ the 2018 IEA_ cement roadmap report. ndb.generate_scenario_report() Cement markets -++++++++++++++ +-------------- Run @@ -1004,7 +1002,7 @@ as well. These cement production datasets link the newly created clinker production dataset, corresponding to their IAM region. Clinker-to-cement ratio -+++++++++++++++++++++++ +----------------------- *premise* used to modify the composition of cement markets to reflect a lower clinker content over time, based on external projections. This is @@ -1012,7 +1010,7 @@ no longer performed, as it is not an assumption stemming from the IAM model, but rather a projection of the cement industry. Original market datasets -======================== +------------------------ Market datasets originally present in the ecoinvent LCI database are cleared from any inputs. Instead, an input from the newly created regional market @@ -1035,7 +1033,7 @@ regional market, which "includes" it in terms of geography. Relinking -+++++++++ +--------- Once cement production and market datasets are created, *premise* re-links cement-consuming activities to the new regional markets for @@ -1043,7 +1041,7 @@ cement. The regional market it re-links to depends on the location of the consumer. Steel production -"""""""""""""""" +++++++++++++++++ Run @@ -1071,7 +1069,7 @@ simple at the moment, and does not involve the emergence of new technologies (e.g., hydrogen-based DRI, electro-winning). Dataset proxies -+++++++++++++++ +--------------- *premise* duplicates steel production datasets in ecoinvent for the production of primary and secondary steel (called respectively @@ -1086,7 +1084,7 @@ to using a rest-of-the-world (RoW) dataset to represent the IAM region. in different fields, such as that of *production volume*. Efficiency adjustment -+++++++++++++++++++++ +--------------------- Regarding primary steel production (using BO-BOF), *premise* adjusts the inputs of fuels found in: @@ -1125,7 +1123,7 @@ provided by the IAM scenario. by *premise*. Therefore, there is a large modelling uncertainty. Carbon Capture and Storage -++++++++++++++++++++++++++ +-------------------------- If the IAM scenario indicates that a share of the CO2 emissions from the steel sector in a given region and year is sequestered and stored, @@ -1150,7 +1148,7 @@ case of a steel mill. Steel markets -+++++++++++++ +------------- *premise* create a dataset "market for steel, low-alloyed" for each IAM region. Within each dataset, the supply shares of primary and secondary steel @@ -1180,7 +1178,7 @@ furnace process (secondary steel). Original market datasets -======================== +------------------------ Market datasets originally present in the ecoinvent LCI database are cleared from any inputs. Instead, an input from the newly created regional market @@ -1203,7 +1201,7 @@ regional market, which "includes" it in terms of geography. Relinking -+++++++++ +--------- Once steel production and market datasets are created, *premise* re-links steel-consuming activities to the new regional markets for @@ -1211,7 +1209,7 @@ steel. The regional market it re-links to depends on the location of the consumer. Transport -""""""""" ++++++++++ Run @@ -1250,7 +1248,7 @@ are obtained by scaling down the current inventories based on the vehicle efficiency improvements projected by the IAM scenario. Trucks -++++++ +------ The following size classes of medium and heavy duty trucks are imported: @@ -1425,7 +1423,7 @@ of India. ================================================================= ============ ================ =========== Direct Air Capture -"""""""""""""""""" +++++++++++++++++++ Run @@ -1457,7 +1455,7 @@ and heat of the DAC datasets to reflect changes in efficiency. .. _Qiu: https://doi.org/10.1038/s41467-022-31146-1 Fuels -""""" ++++++ Run @@ -1485,10 +1483,10 @@ and fuel markets, based on data from the IAM scenario. Efficiency adjustment -+++++++++++++++++++++ +--------------------- Biofuels -======== +-------- The biomass-to-fuel efficiency ratio of bioethanol and biodiesel production datasets is adjusted according to the IAM scenario projections. @@ -1496,54 +1494,8 @@ production datasets is adjusted according to the IAM scenario projections. Inputs to the biofuel production datasets are multiplied by a *scaling factor* that represents the change in efficiency relative to today (2020). -Hydrogen -======== - -Several pathways for hydrogen production are modeled in *premise*: - -- electrolysis -- steam methane reforming of natural gas -- steam methane reforming of biomethane -- gasification of coal -- gasification of woody biomass - -The last four pathways are modeled with and without CCS. - -Inventories for these pathways are available under: - -* premise/data/additional_inventories/lci-hydrogen-electrolysis.xlsx -* premise/data/additional_inventories/lci-smr-atr-natgas.xlsx -* premise/data/additional_inventories/lci-smr-atr-biogas.xlsx -* premise/data/additional_inventories/lci-hydrogen-coal-gasification.xlsx -* premise/data/additional_inventories/lci-hydrogen-wood-gasification.xlsx - - -In case the IAM variable that relates to a given hydrogen pathway's -efficiency is not available, the process' efficiency is not modified, -with the exception of electrolysis, which is modified regardless. - -A scaling factor is calculated for each pathway, which is the ratio -between the IAM variable value for the year in question -and the current efficiency value (i.e., in 2020). *premise* -uses this scaling factor to adjust the amount of feedstock -input to produce 1 kg of hydrogen (e.g., m3 of natural gas per kg hydrogen). - -If the IAM variable that relates to the efficiency of -the electrolysis hydrogen process is not available, -*premise* adjusts the amount of electricity needed -to produce 1 kg of hydrogen by electrolysis, on the basis of the following -requirements, which are sourced from Bauer_ et al, 2022: - - ==================== ======= ======= ======= - kWh/kg H2, 25 bar 2010 2020 2050 - ==================== ======= ======= ======= - electricity 58 55 48 - ==================== ======= ======= ======= - -.. _Bauer: https://www.psi.ch/en/media/77703/download?attachment - Land use and land use change -++++++++++++++++++++++++++++ +---------------------------- When building a database using IMAGE, land use and land use change emissions are available. Upon the import of crops farming datasets, *premise* adjusts @@ -1579,7 +1531,7 @@ CO2 emissions per kg of crop farmed are calculated as:: land_use_co2 = land_use_co2 [kg CO2/GJ] / 1000 [MJ/GJ] * LHV [MJ/kg] Regional supply chains -++++++++++++++++++++++ +---------------------- *premise* builds several supply chains for synthetic fuels, for each IAM region. THe reason for this is that synthetic fuels can be produced from @@ -1587,7 +1539,33 @@ a variety of hydrogen and CO2 sources. Additionally, hydrogen can be supplied by different means of transport, and in different states. Hydrogen -======== +-------- + +Several pathways for hydrogen production are modeled in *premise*: + +- electrolysis +- steam methane reforming of natural gas +- steam methane reforming of biomethane +- gasification of coal +- gasification of woody biomass +- natural gas pyrolysis +- thermochemical water splitting + +Each pathways are modeled with and without CCS, +with the exception of electrolysis, natural gas pyrolysis +and thermochemical water splitting. + +In case the IAM variable that relates to a given hydrogen pathway's +efficiency is not available, the process' efficiency is not modified. + +A scaling factor is calculated for each pathway, which is the ratio +between the IAM variable value for the year in question +and the current efficiency value (i.e., in 2020). *premise* +uses this scaling factor to adjust the amount of feedstock +input to produce 1 kg of hydrogen (e.g., m3 of natural gas per kg hydrogen). + +Hydrogen supply chains +---------------------- *premise* starts by building different supply chains for hydrogen by varying: @@ -1686,7 +1664,7 @@ Also, in this same case, electricity is used: Fuel markets -++++++++++++ +------------ *premise* builds markets for the following fuels: @@ -1716,7 +1694,7 @@ data and the fuel markets is described under: https://github.com/polca/premise/t the choice is made to supply it by truck over 500 km, in a gaseous state. Influence of differing LHV on fuel market composition -===================================================== +----------------------------------------------------- Because not all competing fuels of a same type have similar calorific values, some adjustments are made. The table below shows the example of the market for @@ -1799,7 +1777,7 @@ hardwood chips) relink to the dataset `market for biomass, used as fuel` if CO2 emissions update -++++++++++++++++++++ +-------------------- *premise* iterates through activities that consume any of the newly created fuel markets to update the way CO2 emissions are modelled. Based on the fuel @@ -1833,7 +1811,7 @@ new diesel market of the REMIND region for India. Geographical mapping -"""""""""""""""""""" +++++++++++++++++++++ IAM models have slightly different geographical resolutions and definitions. @@ -1859,208 +1837,209 @@ implementation in the wurst_ library. .. _constructive_geometries: https://github.com/cmutel/constructive_geometries .. _wurst: https://github.com/polca/wurst -=============== ================================= =============================== ======================== =========================== ======================== - Country Code message-topology.json gcam-topology.json tiam-ucl-topology.json remind-topology.json image-topology.json -============== ================================= =============================== ======================== =========================== ======================== - AF R12_SAS South Asia ODA OAS RSAS - AG R12_LAM Central America and Caribbean CSA LAM N/A - AI R12_LAM Central America and Caribbean CSA LAM RCAM - AL R12_EEU Europe_Non_EU WEU NEU CEU - AM R12_FSU Central Asia FSU REF RUS - AO R12_AFR Africa_Southern AFR SSA RSAF - AR R12_LAM Argentina CSA LAM RSAM - AS R12_PAS Southeast Asia ODA OAS OCE - AT R12_WEU EU-15 WEU EUR WEU - AU R12_PAO Australia_NZ AUS CAZ OCE - AZ R12_FSU Central Asia FSU REF RUS - BA R12_EEU Europe_Non_EU EEU NEU CEU - BD R12_SAS South Asia ODA OAS RSAS - BE R12_WEU EU-15 WEU EUR WEU - BF R12_AFR Africa_Western AFR SSA WAF - BG R12_EEU EU-12 EEU EUR CEU - BH R12_MEA Middle East MEA MEA ME - BI R12_AFR Africa_Eastern AFR SSA EAF - BJ R12_AFR Africa_Western AFR SSA WAF - BN R12_PAS Southeast Asia MEA OAS SEAS - BO R12_LAM South America_Southern CSA LAM RSAM - BR R12_LAM Brazil CSA LAM BRA - BS R12_LAM Central America and Caribbean CSA LAM RCAM - BT R12_SAS South Asia ODA OAS RSAS - BW R12_AFR Africa_Southern AFR SSA RSAF - BY R12_FSU Europe_Eastern FSU REF UKR - BZ R12_LAM Central America and Caribbean CSA LAM RCAM - CA R12_NAM Canada CAN CAZ CAN - CD R12_AFR Africa_Western AFR SSA WAF - CF R12_AFR Africa_Western AFR SSA WAF - CG R12_AFR Africa_Western AFR SSA WAF - CH R12_WEU European Free Trade Association WEU NEU WEU - CI R12_AFR Africa_Western AFR SSA WAF - CL R12_LAM South America_Southern CSA LAM RSAM - CM R12_AFR Africa_Western AFR SSA WAF - CN R12_CHN China CHI CHA CHN - CO R12_LAM Colombia CSA LAM RSAM - CR R12_LAM Central America and Caribbean CSA LAM RCAM - CU R12_LAM Central America and Caribbean CSA LAM RCAM - CY R12_WEU EU-12 MEA EUR N/A - CZ R12_EEU EU-12 EEU EUR CEU - DE R12_WEU EU-15 WEU EUR WEU - DJ R12_AFR Africa_Eastern AFR SSA EAF - DK R12_WEU EU-15 WEU EUR WEU - DM R12_LAM Central America and Caribbean CSA LAM RCAM - DO R12_LAM Central America and Caribbean CSA LAM RCAM - DZ R12_MEA Africa_Northern AFR MEA NAF - EC R12_LAM South America_Southern CSA LAM RSAM - EE R12_EEU EU-12 FSU EUR CEU - EG R12_MEA Africa_Northern AFR MEA NAF - ER R12_AFR Africa_Eastern AFR SSA EAF - ES R12_WEU EU-15 WEU EUR WEU - ET R12_AFR Africa_Eastern AFR SSA EAF - FI R12_WEU EU-15 WEU EUR WEU - FJ R12_PAS Southeast Asia ODA OAS OCE - FR R12_WEU EU-15 WEU EUR WEU - GA R12_AFR Africa_Western AFR SSA WAF - GB R12_WEU EU-15 UK EUR WEU - GE R12_FSU Central Asia FSU REF RUS - GF R12_LAM South America_Northern CSA LAM RSAM - GH R12_AFR Africa_Western AFR SSA WAF - GI R12_WEU EU-15 WEU EUR WEU - GL R12_WEU EU-15 NEU NEU WEU - GM R12_AFR Africa_Western AFR SSA WAF - GN R12_AFR Africa_Western AFR SSA WAF - GQ R12_AFR Africa_Western AFR SSA WAF - GR R12_WEU EU-15 WEU EUR WEU - GT R12_LAM Central America and Caribbean CSA LAM RCAM - GW R12_AFR Africa_Western AFR SSA WAF - GY R12_LAM South America_Northern CSA LAM RSAM - HK R12_CHN China CHI CHA CHN - HN R12_LAM Central America and Caribbean CSA LAM RCAM - HR R12_EEU Europe_Non_EU EEU EUR CEU - HT R12_LAM Central America and Caribbean CSA LAM RCAM - HU R12_EEU EU-12 EEU EUR CEU - ID R12_PAS Indonesia ODA OAS INDO - IE R12_WEU EU-15 WEU EUR WEU - IL R12_MEA Middle East MEA MEA ME - IN R12_SAS India IND IND INDIA - IQ R12_MEA Middle East MEA MEA ME - IR R12_MEA Middle East MEA MEA ME - IS R12_WEU European Free Trade Association WEU NEU WEU - IT R12_WEU EU-15 WEU EUR WEU - JM R12_LAM Central America and Caribbean CSA LAM RCAM - JO R12_MEA Middle East MEA MEA ME - JP R12_PAO Japan JPN JPN JAP - KE R12_AFR Africa_Eastern AFR SSA EAF - KG R12_FSU Central Asia FSU REF STAN - KH R12_RCPA Southeast Asia ODA OAS SEAS - KI R12_PAS Southeast Asia ODA OAS OCE - KM R12_AFR Africa_Eastern AFR SSA EAF - KN R12_LAM Central America and Caribbean CSA LAM RCAM - KP R12_RCPA Southeast Asia ODA OAS KOR - KR R12_PAS South Korea SKO OAS KOR - KW R12_MEA Middle East MEA MEA ME - KY R12_LAM Central America and Caribbean CSA LAM RCAM - KZ R12_FSU Central Asia FSU REF STAN - LA R12_RCPA Southeast Asia ODA OAS SEAS - LB R12_MEA Middle East MEA MEA ME - LC R12_LAM Central America and Caribbean CSA LAM RCAM - LI R12_WEU EU-15 WEU NEU WEU - LK R12_SAS South Asia ODA OAS RSAS - LR R12_AFR Africa_Western AFR SSA WAF - LS R12_AFR Africa_Southern AFR SSA RSAF - LT R12_EEU EU-12 FSU EUR CEU - LU R12_WEU EU-15 WEU EUR WEU - LV R12_EEU EU-12 FSU EUR CEU - LY R12_MEA Africa_Northern AFR MEA NAF - MA R12_MEA Africa_Northern AFR MEA NAF - MC R12_WEU EU-15 WEU NEU WEU - MD R12_FSU Europe_Eastern FSU REF UKR - ME R12_EEU Europe_Non_EU EEU NEU CEU - MG R12_AFR Africa_Eastern AFR SSA RSAF - MK R12_EEU Europe_Non_EU EEU NEU CEU - ML R12_AFR Africa_Western AFR SSA WAF - MM R12_PAS Southeast Asia ODA OAS SEAS - MN R12_RCPA Central Asia ODA OAS CHN - MO R12_CHN China CHI CHA CHN - MR R12_AFR Africa_Western AFR SSA WAF - MS R12_LAM Central America and Caribbean CSA LAM RCAM - MT R12_WEU EU-12 WEU EUR WEU - MU R12_AFR Africa_Eastern ODA SSA EAF - MW R12_AFR Africa_Southern AFR SSA RSAF - MX R12_LAM Mexico MEX MEX MEX - MY R12_PAS Southeast Asia ODA OAS SEAS - MZ R12_AFR Africa_Southern AFR SSA RSAF - NA R12_AFR Africa_Southern AFR SSA RSAF - NE R12_AFR Africa_Western AFR SSA WAF - NG R12_AFR Africa_Western AFR SSA WAF - NI R12_LAM Central America and Caribbean CSA LAM RCAM - NL R12_WEU EU-15 WEU EUR WEU - NO R12_WEU European Free Trade Association WEU NEU WEU - NP R12_SAS South Asia ODA OAS RSAS - NR R12_PAS Southeast Asia ODA OAS OCE - NU R12_PAS Southeast Asia ODA OAS OCE - NZ R12_PAO Australia_NZ AUS CAZ OCE - OM R12_MEA Middle East MEA MEA ME - PA R12_LAM Central America and Caribbean CSA LAM RCAM - PE R12_LAM South America_Southern CSA LAM RSAM - PF R12_PAS Southeast Asia ODA OAS OCE - PG R12_PAS Southeast Asia ODA OAS INDO - PH R12_PAS Southeast Asia ODA OAS SEAS - PK R12_SAS Pakistan ODA OAS RSAS - PL R12_EEU EU-12 EEU EUR CEU - PT R12_WEU EU-15 WEU EUR WEU - PY R12_LAM South America_Southern CSA LAM RSAM - QA R12_MEA Middle East MEA MEA ME - RE R12_AFR Africa_Eastern AFR SSA EAF - RO R12_EEU EU-12 EEU EUR CEU - RS R12_EEU Europe_Non_EU EEU NEU CEU - RW R12_AFR Africa_Eastern AFR SSA EAF - SA R12_MEA Middle East MEA MEA ME - SB R12_PAS Southeast Asia ODA OAS OCE - SC R12_AFR Africa_Eastern AFR SSA EAF - SD R12_MEA Africa_Eastern AFR MEA EAF - SE R12_WEU EU-15 WEU EUR WEU - SG R12_PAS Southeast Asia ODA OAS SEAS - SH R12_AFR Africa_Western AFR SSA WAF - SI R12_EEU EU-12 EEU EUR CEU - SK R12_EEU EU-12 EEU EUR CEU - SL R12_AFR Africa_Western AFR SSA WAF - SM R12_WEU EU-15 WEU NEU WEU - SN R12_AFR Africa_Western AFR SSA WAF - SO R12_AFR Africa_Eastern AFR SSA EAF - SR R12_LAM South America_Northern CSA LAM RSAM - SS R12_AFR Africa_Eastern AFR SSA EAF - ST R12_AFR Africa_Western AFR SSA WAF - SV R12_LAM Central America and Caribbean CSA LAM RCAM - SY R12_MEA Middle East MEA MEA ME - SZ R12_AFR Africa_Southern AFR SSA RSAF - TC R12_LAM Central America and Caribbean CSA LAM RCAM - TD R12_AFR Africa_Western AFR SSA WAF - TG R12_AFR Africa_Western AFR SSA WAF - TH R12_PAS Southeast Asia ODA OAS SEAS - TJ R12_FSU Central Asia FSU REF STAN - TL R12_PAS Southeast Asia ODA OAS INDO - TM R12_FSU Central Asia FSU REF STAN - TN R12_MEA Africa_Northern AFR MEA NAF - TO R12_PAS Southeast Asia ODA OAS OCE - TR R12_WEU EU-15 MEA MEA TUR - TT R12_LAM Central America and Caribbean CSA LAM RCAM - TV R12_PAS Southeast Asia ODA OAS OCE - TZ R12_AFR Africa_Southern AFR SSA RSAF - UA R12_FSU Europe_Eastern FSU REF UKR - UG R12_AFR Africa_Eastern AFR SSA EAF - US R12_NAM USA USA USA USA - UY R12_LAM South America_Southern CSA LAM RSAM - UZ R12_FSU Central Asia FSU REF STAN - VC R12_LAM Central America and Caribbean CSA LAM RCAM - VE R12_LAM South America_Northern CSA LAM RSAM - VG N/A N/A N/A LAM RCAM - VI R12_NAM Central America and Caribbean CSA LAM RCAM - VN R12_RCPA Southeast Asia ODA OAS SEAS - VU R12_PAS Southeast Asia ODA OAS OCE - YE R12_MEA Middle East MEA MEA ME - ZA R12_AFR South Africa AFR SSA SAF - ZM R12_AFR Africa_Southern AFR SSA RSAF - ZW R12_AFR Africa_Southern AFR SSA RSAF -=============== ================================= =============================== ======================== =========================== ======================== + + =============== ================================= ================================ ======================== =========================== ======================== + Country Code message-topology.json gcam-topology.json tiam-ucl-topology.json remind-topology.json image-topology.json + =============== ================================= ================================ ======================== =========================== ======================== + AF R12_SAS South Asia ODA OAS RSAS + AG R12_LAM Central America and Caribbean CSA LAM N/A + AI R12_LAM Central America and Caribbean CSA LAM RCAM + AL R12_EEU Europe_Non_EU WEU NEU CEU + AM R12_FSU Central Asia FSU REF RUS + AO R12_AFR Africa_Southern AFR SSA RSAF + AR R12_LAM Argentina CSA LAM RSAM + AS R12_PAS Southeast Asia ODA OAS OCE + AT R12_WEU EU-15 WEU EUR WEU + AU R12_PAO Australia_NZ AUS CAZ OCE + AZ R12_FSU Central Asia FSU REF RUS + BA R12_EEU Europe_Non_EU EEU NEU CEU + BD R12_SAS South Asia ODA OAS RSAS + BE R12_WEU EU-15 WEU EUR WEU + BF R12_AFR Africa_Western AFR SSA WAF + BG R12_EEU EU-12 EEU EUR CEU + BH R12_MEA Middle East MEA MEA ME + BI R12_AFR Africa_Eastern AFR SSA EAF + BJ R12_AFR Africa_Western AFR SSA WAF + BN R12_PAS Southeast Asia MEA OAS SEAS + BO R12_LAM South America_Southern CSA LAM RSAM + BR R12_LAM Brazil CSA LAM BRA + BS R12_LAM Central America and Caribbean CSA LAM RCAM + BT R12_SAS South Asia ODA OAS RSAS + BW R12_AFR Africa_Southern AFR SSA RSAF + BY R12_FSU Europe_Eastern FSU REF UKR + BZ R12_LAM Central America and Caribbean CSA LAM RCAM + CA R12_NAM Canada CAN CAZ CAN + CD R12_AFR Africa_Western AFR SSA WAF + CF R12_AFR Africa_Western AFR SSA WAF + CG R12_AFR Africa_Western AFR SSA WAF + CH R12_WEU European Free Trade Association WEU NEU WEU + CI R12_AFR Africa_Western AFR SSA WAF + CL R12_LAM South America_Southern CSA LAM RSAM + CM R12_AFR Africa_Western AFR SSA WAF + CN R12_CHN China CHI CHA CHN + CO R12_LAM Colombia CSA LAM RSAM + CR R12_LAM Central America and Caribbean CSA LAM RCAM + CU R12_LAM Central America and Caribbean CSA LAM RCAM + CY R12_WEU EU-12 MEA EUR N/A + CZ R12_EEU EU-12 EEU EUR CEU + DE R12_WEU EU-15 WEU EUR WEU + DJ R12_AFR Africa_Eastern AFR SSA EAF + DK R12_WEU EU-15 WEU EUR WEU + DM R12_LAM Central America and Caribbean CSA LAM RCAM + DO R12_LAM Central America and Caribbean CSA LAM RCAM + DZ R12_MEA Africa_Northern AFR MEA NAF + EC R12_LAM South America_Southern CSA LAM RSAM + EE R12_EEU EU-12 FSU EUR CEU + EG R12_MEA Africa_Northern AFR MEA NAF + ER R12_AFR Africa_Eastern AFR SSA EAF + ES R12_WEU EU-15 WEU EUR WEU + ET R12_AFR Africa_Eastern AFR SSA EAF + FI R12_WEU EU-15 WEU EUR WEU + FJ R12_PAS Southeast Asia ODA OAS OCE + FR R12_WEU EU-15 WEU EUR WEU + GA R12_AFR Africa_Western AFR SSA WAF + GB R12_WEU EU-15 UK EUR WEU + GE R12_FSU Central Asia FSU REF RUS + GF R12_LAM South America_Northern CSA LAM RSAM + GH R12_AFR Africa_Western AFR SSA WAF + GI R12_WEU EU-15 WEU EUR WEU + GL R12_WEU EU-15 NEU NEU WEU + GM R12_AFR Africa_Western AFR SSA WAF + GN R12_AFR Africa_Western AFR SSA WAF + GQ R12_AFR Africa_Western AFR SSA WAF + GR R12_WEU EU-15 WEU EUR WEU + GT R12_LAM Central America and Caribbean CSA LAM RCAM + GW R12_AFR Africa_Western AFR SSA WAF + GY R12_LAM South America_Northern CSA LAM RSAM + HK R12_CHN China CHI CHA CHN + HN R12_LAM Central America and Caribbean CSA LAM RCAM + HR R12_EEU Europe_Non_EU EEU EUR CEU + HT R12_LAM Central America and Caribbean CSA LAM RCAM + HU R12_EEU EU-12 EEU EUR CEU + ID R12_PAS Indonesia ODA OAS INDO + IE R12_WEU EU-15 WEU EUR WEU + IL R12_MEA Middle East MEA MEA ME + IN R12_SAS India IND IND INDIA + IQ R12_MEA Middle East MEA MEA ME + IR R12_MEA Middle East MEA MEA ME + IS R12_WEU European Free Trade Association WEU NEU WEU + IT R12_WEU EU-15 WEU EUR WEU + JM R12_LAM Central America and Caribbean CSA LAM RCAM + JO R12_MEA Middle East MEA MEA ME + JP R12_PAO Japan JPN JPN JAP + KE R12_AFR Africa_Eastern AFR SSA EAF + KG R12_FSU Central Asia FSU REF STAN + KH R12_RCPA Southeast Asia ODA OAS SEAS + KI R12_PAS Southeast Asia ODA OAS OCE + KM R12_AFR Africa_Eastern AFR SSA EAF + KN R12_LAM Central America and Caribbean CSA LAM RCAM + KP R12_RCPA Southeast Asia ODA OAS KOR + KR R12_PAS South Korea SKO OAS KOR + KW R12_MEA Middle East MEA MEA ME + KY R12_LAM Central America and Caribbean CSA LAM RCAM + KZ R12_FSU Central Asia FSU REF STAN + LA R12_RCPA Southeast Asia ODA OAS SEAS + LB R12_MEA Middle East MEA MEA ME + LC R12_LAM Central America and Caribbean CSA LAM RCAM + LI R12_WEU EU-15 WEU NEU WEU + LK R12_SAS South Asia ODA OAS RSAS + LR R12_AFR Africa_Western AFR SSA WAF + LS R12_AFR Africa_Southern AFR SSA RSAF + LT R12_EEU EU-12 FSU EUR CEU + LU R12_WEU EU-15 WEU EUR WEU + LV R12_EEU EU-12 FSU EUR CEU + LY R12_MEA Africa_Northern AFR MEA NAF + MA R12_MEA Africa_Northern AFR MEA NAF + MC R12_WEU EU-15 WEU NEU WEU + MD R12_FSU Europe_Eastern FSU REF UKR + ME R12_EEU Europe_Non_EU EEU NEU CEU + MG R12_AFR Africa_Eastern AFR SSA RSAF + MK R12_EEU Europe_Non_EU EEU NEU CEU + ML R12_AFR Africa_Western AFR SSA WAF + MM R12_PAS Southeast Asia ODA OAS SEAS + MN R12_RCPA Central Asia ODA OAS CHN + MO R12_CHN China CHI CHA CHN + MR R12_AFR Africa_Western AFR SSA WAF + MS R12_LAM Central America and Caribbean CSA LAM RCAM + MT R12_WEU EU-12 WEU EUR WEU + MU R12_AFR Africa_Eastern ODA SSA EAF + MW R12_AFR Africa_Southern AFR SSA RSAF + MX R12_LAM Mexico MEX MEX MEX + MY R12_PAS Southeast Asia ODA OAS SEAS + MZ R12_AFR Africa_Southern AFR SSA RSAF + NA R12_AFR Africa_Southern AFR SSA RSAF + NE R12_AFR Africa_Western AFR SSA WAF + NG R12_AFR Africa_Western AFR SSA WAF + NI R12_LAM Central America and Caribbean CSA LAM RCAM + NL R12_WEU EU-15 WEU EUR WEU + NO R12_WEU European Free Trade Association WEU NEU WEU + NP R12_SAS South Asia ODA OAS RSAS + NR R12_PAS Southeast Asia ODA OAS OCE + NU R12_PAS Southeast Asia ODA OAS OCE + NZ R12_PAO Australia_NZ AUS CAZ OCE + OM R12_MEA Middle East MEA MEA ME + PA R12_LAM Central America and Caribbean CSA LAM RCAM + PE R12_LAM South America_Southern CSA LAM RSAM + PF R12_PAS Southeast Asia ODA OAS OCE + PG R12_PAS Southeast Asia ODA OAS INDO + PH R12_PAS Southeast Asia ODA OAS SEAS + PK R12_SAS Pakistan ODA OAS RSAS + PL R12_EEU EU-12 EEU EUR CEU + PT R12_WEU EU-15 WEU EUR WEU + PY R12_LAM South America_Southern CSA LAM RSAM + QA R12_MEA Middle East MEA MEA ME + RE R12_AFR Africa_Eastern AFR SSA EAF + RO R12_EEU EU-12 EEU EUR CEU + RS R12_EEU Europe_Non_EU EEU NEU CEU + RW R12_AFR Africa_Eastern AFR SSA EAF + SA R12_MEA Middle East MEA MEA ME + SB R12_PAS Southeast Asia ODA OAS OCE + SC R12_AFR Africa_Eastern AFR SSA EAF + SD R12_MEA Africa_Eastern AFR MEA EAF + SE R12_WEU EU-15 WEU EUR WEU + SG R12_PAS Southeast Asia ODA OAS SEAS + SH R12_AFR Africa_Western AFR SSA WAF + SI R12_EEU EU-12 EEU EUR CEU + SK R12_EEU EU-12 EEU EUR CEU + SL R12_AFR Africa_Western AFR SSA WAF + SM R12_WEU EU-15 WEU NEU WEU + SN R12_AFR Africa_Western AFR SSA WAF + SO R12_AFR Africa_Eastern AFR SSA EAF + SR R12_LAM South America_Northern CSA LAM RSAM + SS R12_AFR Africa_Eastern AFR SSA EAF + ST R12_AFR Africa_Western AFR SSA WAF + SV R12_LAM Central America and Caribbean CSA LAM RCAM + SY R12_MEA Middle East MEA MEA ME + SZ R12_AFR Africa_Southern AFR SSA RSAF + TC R12_LAM Central America and Caribbean CSA LAM RCAM + TD R12_AFR Africa_Western AFR SSA WAF + TG R12_AFR Africa_Western AFR SSA WAF + TH R12_PAS Southeast Asia ODA OAS SEAS + TJ R12_FSU Central Asia FSU REF STAN + TL R12_PAS Southeast Asia ODA OAS INDO + TM R12_FSU Central Asia FSU REF STAN + TN R12_MEA Africa_Northern AFR MEA NAF + TO R12_PAS Southeast Asia ODA OAS OCE + TR R12_WEU EU-15 MEA MEA TUR + TT R12_LAM Central America and Caribbean CSA LAM RCAM + TV R12_PAS Southeast Asia ODA OAS OCE + TZ R12_AFR Africa_Southern AFR SSA RSAF + UA R12_FSU Europe_Eastern FSU REF UKR + UG R12_AFR Africa_Eastern AFR SSA EAF + US R12_NAM USA USA USA USA + UY R12_LAM South America_Southern CSA LAM RSAM + UZ R12_FSU Central Asia FSU REF STAN + VC R12_LAM Central America and Caribbean CSA LAM RCAM + VE R12_LAM South America_Northern CSA LAM RSAM + VG N/A N/A N/A LAM RCAM + VI R12_NAM Central America and Caribbean CSA LAM RCAM + VN R12_RCPA Southeast Asia ODA OAS SEAS + VU R12_PAS Southeast Asia ODA OAS OCE + YE R12_MEA Middle East MEA MEA ME + ZA R12_AFR South Africa AFR SSA SAF + ZM R12_AFR Africa_Southern AFR SSA RSAF + ZW R12_AFR Africa_Southern AFR SSA RSAF + =============== ================================= ================================ ======================== =========================== ======================== @@ -2068,7 +2047,7 @@ The mapping between ecoinvent locations and IAM regions is available under the f https://github.com/polca/premise/blob/master/premise/iam_variables_mapping/topologies Regionalization -""""""""""""""" ++++++++++++++++ Several of the integration steps described above involve the regionalization of datasets. It is the case, for example, when introducing @@ -2177,7 +2156,12 @@ Final Steps GAINS emission factors -"""""""""""""""""""""" +++++++++++++++++++++++ + +Emissions factors from the air pollution model GAINS are used to scale +non-CO2 emissions in various datasets. The emission factors are available under: + +premise/data/GAINS_emission_factors Run @@ -2295,7 +2279,7 @@ For questions related to GAINS modelling, please contact the respective GAINS te * GAINS-IAM: https://gains.iiasa.ac.at/gains/IAM/index.login Logs -"""" +++++ *premise* generates a spreadsheet report detailing changes made to the database for each scenario. The report is saved in the current working directory and diff --git a/premise/__init__.py b/premise/__init__.py index b0ef335c..ea53423b 100644 --- a/premise/__init__.py +++ b/premise/__init__.py @@ -5,7 +5,7 @@ "clear_inventory_cache", "get_regions_definition", ) -__version__ = (2, 1, 1, "dev8") +__version__ = (2, 1, 1, "dev9") from premise.new_database import NewDatabase diff --git a/premise/data/additional_inventories/lci-PV-GaAs.xlsx b/premise/data/additional_inventories/lci-PV-GaAs.xlsx index 1ded0ed9b5a601b8e20f5238b4fd4a856b748518..4ff739178dccb696b0388bb45d542235c55d984d 100644 GIT binary patch delta 18293 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 z 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 diff --git a/premise/electricity.py b/premise/electricity.py index 4aca29db..fe8f7e5a 100644 --- a/premise/electricity.py +++ b/premise/electricity.py @@ -1442,69 +1442,71 @@ def update_efficiency_of_solar_pv(self) -> None: if len(pv_tech) > 0: pv_tech = pv_tech[0] - for exc in ws.technosphere( - dataset, - ws.contains("name", "photovoltaic"), - ws.equals("unit", "square meter"), - ): - surface = float(exc["amount"]) - max_power = surface # in kW, since we assume a constant 1,000W/m^2 - current_eff = power / max_power - - if self.year in module_eff.coords["year"].values: - new_mean_eff = module_eff.sel( - technology=pv_tech, year=self.year, efficiency_type="mean" - ).values - new_min_eff = module_eff.sel( - technology=pv_tech, year=self.year, efficiency_type="min" - ).values - new_max_eff = module_eff.sel( - technology=pv_tech, year=self.year, efficiency_type="max" - ).values - else: - new_mean_eff = ( - module_eff.sel(technology=pv_tech, efficiency_type="mean") - .interp(year=self.year, kwargs={"fill_value": "extrapolate"}) - .values - ) - new_min_eff = ( - module_eff.sel(technology=pv_tech, efficiency_type="min") - .interp(year=self.year, kwargs={"fill_value": "extrapolate"}) - .values - ) - new_max_eff = ( - module_eff.sel(technology=pv_tech, efficiency_type="max") - .interp(year=self.year, kwargs={"fill_value": "extrapolate"}) - .values - ) + if pv_tech: - # in case self.year <10 or >2050 - new_mean_eff = np.clip(new_mean_eff, 0.1, 0.30) - new_min_eff = np.clip(new_min_eff, 0.1, 0.30) - new_max_eff = np.clip(new_max_eff, 0.1, 0.30) - - # We only update the efficiency if it is higher than the current one. - if new_mean_eff.sum() > current_eff: - exc["amount"] *= float(current_eff / new_mean_eff) - exc["uncertainty type"] = 5 - exc["loc"] = exc["amount"] - exc["minimum"] = exc["amount"] * (new_min_eff / new_mean_eff) - exc["maximum"] = exc["amount"] * (new_max_eff / new_mean_eff) - - dataset["comment"] = ( - f"`premise` has changed the efficiency " - f"of this photovoltaic installation " - f"from {int(current_eff * 100)} pct. to {int(new_mean_eff * 100)} pt." - ) + for exc in ws.technosphere( + dataset, + ws.contains("name", "photovoltaic"), + ws.equals("unit", "square meter"), + ): + surface = float(exc["amount"]) + max_power = surface # in kW, since we assume a constant 1,000W/m^2 + current_eff = power / max_power + + if self.year in module_eff.coords["year"].values: + new_mean_eff = module_eff.sel( + technology=pv_tech, year=self.year, efficiency_type="mean" + ).values + new_min_eff = module_eff.sel( + technology=pv_tech, year=self.year, efficiency_type="min" + ).values + new_max_eff = module_eff.sel( + technology=pv_tech, year=self.year, efficiency_type="max" + ).values + else: + new_mean_eff = ( + module_eff.sel(technology=pv_tech, efficiency_type="mean") + .interp(year=self.year, kwargs={"fill_value": "extrapolate"}) + .values + ) + new_min_eff = ( + module_eff.sel(technology=pv_tech, efficiency_type="min") + .interp(year=self.year, kwargs={"fill_value": "extrapolate"}) + .values + ) + new_max_eff = ( + module_eff.sel(technology=pv_tech, efficiency_type="max") + .interp(year=self.year, kwargs={"fill_value": "extrapolate"}) + .values + ) - if "log parameters" not in dataset: - dataset["log parameters"] = {} + # in case self.year <10 or >2050 + new_mean_eff = np.clip(new_mean_eff, 0.1, 0.30) + new_min_eff = np.clip(new_min_eff, 0.1, 0.30) + new_max_eff = np.clip(new_max_eff, 0.1, 0.30) + + # We only update the efficiency if it is higher than the current one. + if new_mean_eff.sum() >= current_eff: + exc["amount"] *= float(current_eff / new_mean_eff) + exc["uncertainty type"] = 5 + exc["loc"] = exc["amount"] + exc["minimum"] = exc["amount"] * (new_min_eff / new_mean_eff) + exc["maximum"] = exc["amount"] * (new_max_eff / new_mean_eff) + + dataset["comment"] = ( + f"`premise` has changed the efficiency " + f"of this photovoltaic installation " + f"from {int(current_eff * 100)} pct. to {int(new_mean_eff * 100)} pt." + ) - dataset["log parameters"].update({"old efficiency": current_eff}) - dataset["log parameters"].update({"new efficiency": new_mean_eff}) + if "log parameters" not in dataset: + dataset["log parameters"] = {} - # add to log - self.write_log(dataset=dataset, status="updated") + dataset["log parameters"].update({"old efficiency": current_eff}) + dataset["log parameters"].update({"new efficiency": new_mean_eff}) + + # add to log + self.write_log(dataset=dataset, status="updated") def create_region_specific_power_plants(self): """ diff --git a/tests/test_utils.py b/tests/test_utils.py index 7e87b807..b97e2587 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -37,7 +37,7 @@ def test_fuels_properties(): def test_eff_solar_PV(): eff_PV = get_efficiency_solar_photovoltaics() assert type(eff_PV) == xr.DataArray - assert eff_PV.sel(technology="multi-Si", year=2010) == 0.14 + assert eff_PV.sel(technology="multi-Si", year=2010, efficiency_type="mean") == 0.14 assert "moni-Si" not in eff_PV.technology.values