🏘️🌳🌲🌽🍀 Land cover LCA for the GOBLIN model (Ireland only)
Based on the GOBLIN (General Overview for a Backcasting approach of Livestock INtensification) land use tool module
The package takes outputs from the landcover_assignment module (land use data and transition matrix) and produces emissions inventory for cropland, grassland, forest and wetlands
Currently parameterised for Ireland, the historic land uses and areas of organic and mineral soil are taken from the National Invetory CRF Tables
Final result are pandas dataframes that can be read by numerous GOBLIN packages.
Installation
Install from git hub.
pip install "landcover_lca@git+https://github.com/GOBLIN-Proj/landcover_lca.git@main"
Install from PyPI
pip install landcover_lca
Usage
The baseline year represents the scenario baseline. The target year is the end year for each one of the scenarios.
Transition dataframe is the land use transition matrix, and the land use dataframe is the areas for each land use.
The land use dataframe includes proportions for area mineral, organic, rewetted, burnt, and peat extraction.
Annual trade data has been used for horticultural peat exports.
from landcover_lca.models import load_transition_matrix, load_land_use_data
import landcover_lca.lca_emission as lca
import pandas as pd
import os
def main():
data_dir = "./data"
ef_country = "ireland"
baseline = 2020
target = 2050
transition = pd.read_csv(os.path.join(data_dir, "transition.csv"), index_col = 0)
land_uses = pd.read_csv(os.path.join(data_dir, "land_uses.csv"), index_col = 0)
transition_matrix = load_transition_matrix(transition, ef_country, baseline, target)
land_use_data = load_land_use_data(land_uses, baseline)
baseline_index = -1
base = -baseline
emission_df = pd.DataFrame(
columns=["CO2", "CH4", "N2O", "CO2e"],
index=pd.MultiIndex.from_product(
[
# list(scenario_list),
[baseline_index],
["cropland", "grassland", "forest", "wetland", "total"],
[
baseline
],
],
names=["scenario", "land_use", "year"],
),
)
emission_df.index.levels[0].astype(int)
emission_df.loc[
(
baseline_index,
"total",
baseline,
),
"CH4",
] = (
lca.total_ch4_emission(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df.loc[
(
baseline_index,
"total",
baseline,
),
"CO2",
] = lca.total_co2_emission(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
emission_df.loc[
(
baseline_index,
"total",
baseline,
),
"N2O",
] = (
lca.total_n2o_emission(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df.loc[
(
baseline_index,
"cropland",
baseline
),
"CO2",
] = lca.total_co2_emission_cropland(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
emission_df.loc[
(
baseline_index,
"cropland",
baseline,
),
"CH4",
] = lca.total_ch4_emission_cropland(
ef_country,
transition_matrix[base],
land_use_data[base],
land_use_data[base]
)
emission_df.loc[
(
baseline_index,
"cropland",
baseline,
),
"N2O",
] = (
lca.total_n2o_emission_cropland(
ef_country,
transition_matrix[base],
land_use_data[base],
land_use_data[base],
)
)
emission_df.loc[
(
baseline_index,
"grassland",
baseline,
),
"CO2",
] = (
lca.total_co2_emission_grassland(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df.loc[
(
baseline_index,
"grassland",
baseline,
),
"CH4",
] = (
lca.total_ch4_emission_grassland(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df.loc[
(
baseline_index,
"grassland",
baseline
),
"N2O",
] = (
lca.total_n2o_emission_grassland(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df.loc[
(
baseline_index,
"wetland",
baseline,
),
"CO2",
] = (
lca.total_co2_emission_wetland(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country,
) + lca.horticulture_co2_peat_export(ef_country, baseline, baseline)
)
emission_df.loc[
(
baseline_index,
"wetland",
baseline,
),
"CH4",
] = (
lca.total_ch4_emission_wetland(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df.loc[
(
baseline_index,
"wetland",
baseline,
),
"N2O",
] = (
lca.total_n2o_emission_wetland(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country,
)
)
emission_df.loc[
(
baseline_index,
"forest",
baseline,
),
"CO2",
] = (
lca.total_co2_emission_forest(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country,
)
)
emission_df.loc[
(
baseline_index,
"forest",
baseline
),
"CH4",
] = (
lca.total_ch4_emission_forest(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df.loc[
(
baseline_index,
"forest",
baseline
),
"N2O",
] = (
lca.total_n2o_emission_forest(
land_use_data[base],
land_use_data[base],
transition_matrix[base],
ef_country
)
)
emission_df["CO2e"] = (
emission_df["CO2"]
+ (emission_df["CH4"] * 28)
+ (emission_df["N2O"] * 295)
)
print(emission_df)
if __name__ == "__main__":
main()
License
This project is licensed under the terms of the MIT license.
Metadata
Release files for landcover_lca 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| landcover_lca-0.2.1.tar.gz | 65.7 kB | Without provenance | Details for landcover_lca-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| landcover_lca-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for landcover_lca-0.2.1-py3-none-any.whl |
Total release size: 141.8 kB
Release files / landcover_lca-0.2.1.tar.gz
| Download URL | landcover_lca-0.2.1.tar.gz |
|---|---|
| Size | 65.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1db70a2e187a048848f3a7da2bd48db141e5f9ac70fec7dc2922e4acd0fba0b
|
|
BLAKE2b-256 checksum How to use checksums |
c0668dd5e309c77c7a00c3472cd7c35e65f98630e7059f7580ceca6ce47f92f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.10.0 Linux/5.15.0-113-generic
|
Release files / landcover_lca-0.2.1-py3-none-any.whl
| Download URL | landcover_lca-0.2.1-py3-none-any.whl |
|---|---|
| Size | 76.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
acc6bbb36ae8d928979e8d65ec4ec9665c9fbf2358e0567015eb836a2d06154e
|
|
BLAKE2b-256 checksum How to use checksums |
41cb640f0946a6121bc4e6306bb3713434b8f6047ea25fc6db27487ef155f445
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.10.0 Linux/5.15.0-113-generic
|
Security for landcover_lca 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.