From d2c1f9ec327d55ac9e40e0638fd836868189d0bb Mon Sep 17 00:00:00 2001 From: Irieo Date: Fri, 3 Nov 2023 14:14:01 +0100 Subject: [PATCH] data: solve floating url problem for WDPA data retrieval --- rules/retrieve.smk | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/rules/retrieve.smk b/rules/retrieve.smk index f300b1aa..e3d50378 100644 --- a/rules/retrieve.smk +++ b/rules/retrieve.smk @@ -2,6 +2,9 @@ # # SPDX-License-Identifier: MIT +import requests +from datetime import datetime, timedelta + if config["enable"].get("retrieve", "auto") == "auto": config["enable"]["retrieve"] = has_internet_access() @@ -223,11 +226,20 @@ if config["enable"]["retrieve"]: if config["enable"]["retrieve"]: - from datetime import datetime current_month = datetime.now().strftime('%b') current_year = datetime.now().strftime('%Y') bYYYY = f"{current_month}{current_year}" + def check_file_exists(url): + response = requests.head(url) + return response.status_code == 200 + + url = f'https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_{bYYYY}_Public.zip' + + if not check_file_exists(url): + prev_month = (datetime.now()-timedelta(30)).strftime('%b') + bYYYY = f"{prev_month}{current_year}" + assert check_file_exists(f'https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_{bYYYY}_Public.zip'), "The file does not exist." # Downloading protected area database from WDPA # extract the main zip and then merge the contained 3 zipped shapefiles