diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4c00b30ac03c20c66308ef8529f487f716808ef9..1cfcb5235d9db22c198fbd0cc26af8602498f337 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,6 +29,8 @@ deployment: - echo "TMP_DIR=$TMP_DIR" >> $ENV_FILE - echo "WEATHER_DATA_DIR=$WEATHER_DATA_DIR" >> $ENV_FILE - echo "WEATHER_DATA_FILENAME_DATEFORMAT=$WEATHER_DATA_FILENAME_DATEFORMAT" >> $ENV_FILE + - echo "ARCHIVE_WEATHER_DATA_DIR=$ARCHIVE_WEATHER_DATA_DIR" >> $ENV_FILE + - echo "ARCHIVE_WEATHER_DATA_FILENAME_DATEFORMAT=$ARCHIVE_WEATHER_DATA_FILENAME_DATEFORMAT" >> $ENV_FILE - echo "RESULT_TIF_DIR=$RESULT_TIF_DIR" >> $ENV_FILE - echo "RESULT_MAPFILE_DIR=$RESULT_MAPFILE_DIR" >> $ENV_FILE - echo "MAPSERVER_RESULT_TIF_DIR=$MAPSERVER_RESULT_TIF_DIR" >> $ENV_FILE diff --git a/ADASMELIAE.py b/ADASMELIAE.py index c18c87b5ea13396830ab4d68d31ab2b2a6ba2b7a..572fbb537917196a2cdffd5ffe318d5a22b6f7c6 100755 --- a/ADASMELIAE.py +++ b/ADASMELIAE.py @@ -45,13 +45,13 @@ DEBUG = ( model_id = os.getenv("MODEL_ID") home_dir = os.getenv("HOME_DIR") weather_data_dir = os.getenv("WEATHER_DATA_DIR") +archive_weather_data_dir = os.getenv("ARCHIVE_WEATHER_DATA_DIR") result_tif_base_dir = os.getenv("RESULT_TIF_DIR") result_mapfile_base_dir = os.getenv("RESULT_MAPFILE_DIR") tmp_dir = os.getenv("TMP_DIR") template_dir = f"{home_dir}mapfile/" - - weather_data_filename_pattern = os.getenv("WEATHER_DATA_FILENAME_DATEFORMAT") +archive_weather_data_filename_pattern = os.getenv("ARCHIVE_WEATHER_DATA_FILENAME_DATEFORMAT") start_MM_DD = os.getenv("START_DATE_MM_DD") end_MM_DD = os.getenv("END_DATE_MM_DD") @@ -127,7 +127,7 @@ def remove_temporary_files(): # Remove previously calculated results def remove_old_results(tif_dir, mapfile_dir): - logging.info("Remove previously calculated results") + logging.info(f"Remove previously calculated results from {tif_dir} and {mapfile_dir}") if glob.glob(f"{tif_dir}*.tif"): run_command(command=f"rm {tif_dir}*.tif") if glob.glob(f"rm {mapfile_dir}*.map"): @@ -202,8 +202,20 @@ if __name__ == "__main__": if today < start_date: logging.error("Model period not started. Quit.") sys.exit() - - weather_data_file = weather_data_dir + weather_data_filename_pattern.replace('%Y', str(year)) + + if year == today.year: + weather_data_file = f"{weather_data_dir}{weather_data_filename_pattern.replace('%Y', str(year))}" + else: + weather_data_file = f"{archive_weather_data_dir}{year}/{archive_weather_data_filename_pattern.replace('%Y', str(year))}" + + if not os.path.exists(weather_data_file): + logging.error(f"Weather data file {weather_data_file} not found. Quit.") + sys.exit() + + logging.info( + f"Use weather data from file {weather_data_file}" + ) + max_temp_in_period_file = f"{tmp_dir}{year}_max_temp_for_period.nc" unmasked_result_file = f"{tmp_dir}{year}_unmasked_result.nc" final_result_file = f"{tmp_dir}{year}_result.nc" @@ -317,8 +329,8 @@ if __name__ == "__main__": { "model_id": model_id, "timestep_dates": timestep_dates, - "mapserver_data_dir": f"os.getenv('MAPSERVER_RESULT_TIF_DIR'){year}", - "mapserver_mapfile_dir": f"os.getenv('MAPSERVER_RESULT_MAPFILE_DIR'){year}", + "mapserver_data_dir": f"{os.getenv('MAPSERVER_RESULT_TIF_DIR')}{year}/", + "mapserver_mapfile_dir": f"{os.getenv('MAPSERVER_RESULT_MAPFILE_DIR')}{year}/", "mapserver_log_file": os.getenv("MAPSERVER_LOG_FILE"), "mapserver_image_path": os.getenv("MAPSERVER_IMAGE_PATH"), "mapserver_extent": os.getenv("MAPSERVER_EXTENT"), diff --git a/README.md b/README.md index 9a8730a1b628317b2599a6da0204898e9d055d5e..21a4d19c994107b1602d9896891419817f8d0142 100644 --- a/README.md +++ b/README.md @@ -41,10 +41,14 @@ END_DATE_MM_DD=04-01 HOME_DIR=/foo/home/ADASMELIAE/ # Path to folder for intermediary results TMP_DIR=/foo/home/ADASMELIAE/tmp/ -# Path to the weather data +# Directory containing weather data for current year WEATHER_DATA_DIR=/foo/weather/ -# Used to construct filename from current year +# Weather data filename pattern WEATHER_DATA_FILENAME_DATEFORMAT="%Y_with_forecast.nc" +# Directory containing archived weather data for previous years +ARCHIVE_WEATHER_DATA_DIR=/foo/weather/archive/ +# Archived weather data filename pattern +ARCHIVE_WEATHER_DATA_FILENAME_DATEFORMAT="%Y.nc" # Path to the output (GeoTIFF) files as seen from the running model code RESULT_TIF_DIR=/foo/out/tif/ # Path to the generated mapfile as seen from the running model code diff --git a/env-sample b/env-sample index 75dfd90a1c874f76cb7c16b18a4a0c84362c9a4f..d4e0ffa6fdaf7bb7337f8c9735d5864d82547fab 100644 --- a/env-sample +++ b/env-sample @@ -12,10 +12,16 @@ END_DATE_MM_DD=04-01 HOME_DIR=/foo/home/ADASMELIAE/ # Path to folder for intermediary results TMP_DIR=/foo/home/ADASMELIAE/tmp/ -# Path to the weather data +# Path to folder for intermediary results +TMP_DIR=/Users/lenewasskog/Projects/grid/ADASMELIAE/tmp/ +# Directory containing weather data for current year WEATHER_DATA_DIR=/foo/weather/ -# Used to construct filename from current year +# Weather data filename pattern WEATHER_DATA_FILENAME_DATEFORMAT="%Y_with_forecast.nc" +# Directory containing archived weather data for previous years +ARCHIVE_WEATHER_DATA_DIR=/foo/weather/archive/ +# Archived weather data filename pattern +ARCHIVE_WEATHER_DATA_FILENAME_DATEFORMAT="%Y.nc" # Path to the output (GeoTIFF) files as seen from the running model code RESULT_TIF_DIR=/foo/out/tif/ # Path to the generated mapfile as seen from the running model code