From 314f6c6f0feeccaac9ed6ea1fba4bff28b2e1c00 Mon Sep 17 00:00:00 2001 From: lisazeyen Date: Mon, 29 Jul 2024 16:00:13 +0200 Subject: [PATCH] retrieve ammonia demand data --- rules/retrieve.smk | 9 +++++++ scripts/retrieve_ammonia_demand.py | 42 ++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 scripts/retrieve_ammonia_demand.py diff --git a/rules/retrieve.smk b/rules/retrieve.smk index 24e387c5..7bf7c680 100644 --- a/rules/retrieve.smk +++ b/rules/retrieve.smk @@ -65,6 +65,15 @@ if config["enable"]["retrieve"] and config["enable"].get("retrieve_databundle", script: "../scripts/retrieve_jrc_idees.py" + rule retrieve_ammonia_demand: + output: + "data/bundle/myb1-2021-nitro-ert.xlsx", + log: + "logs/retrieve_ammonia_demand.log", + retries: 2 + script: + "../scripts/retrieve_ammonia_demand.py" + rule retrieve_eurostat_household_data: output: "data/eurostat/eurostat-household_energy_balances-february_2024.csv", diff --git a/scripts/retrieve_ammonia_demand.py b/scripts/retrieve_ammonia_demand.py new file mode 100644 index 00000000..cdfa582b --- /dev/null +++ b/scripts/retrieve_ammonia_demand.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# SPDX-FileCopyrightText: : 2024- The PyPSA-Eur Authors +# +# SPDX-License-Identifier: MIT +""" +Retrieve ammonia demand from https://www.usgs.gov/centers/national-minerals-information-center/nitrogen-statistics-and-information. +""" + +import logging +import os +import zipfile +from pathlib import Path + +from _helpers import configure_logging, progress_retrieve, set_scenario_config + +logger = logging.getLogger(__name__) + +# Define the base URL +url = "https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/media/files/myb1-2022-nitro-ert.xlsx" + +if __name__ == "__main__": + if "snakemake" not in globals(): + from _helpers import mock_snakemake + + snakemake = mock_snakemake("retrieve_ammonia_demand") + rootpath = ".." + else: + rootpath = "." + + configure_logging(snakemake) + set_scenario_config(snakemake) + disable_progress = snakemake.config["run"].get("disable_progressbar", False) + + to_fn = snakemake.output[0] + + + # download .zip file + logger.info(f"Downloading Ammonia demand from {url}.") + progress_retrieve(url, to_fn, disable=disable_progress) + + + logger.info(f"Ammonia demand data available in '{to_fn}'.")