diff --git a/.gitignore b/.gitignore
index 7db8917d079a2249f5153b1681a6b80e0679bae5..25a01ae5ed071b4399474d4e9c24fb30f601c017 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,9 @@
 *.nc
+!test/weather_data/*_cropped.nc
 *.tif
 *.tif.aux.xml
 .env
 .venv
-mapfile/SEPTREFHUM.map
+mapfile/*.map
+last_run_timestamp
+.~lock.input_data_test.ods#
diff --git a/README.md b/README.md
index 536b39cdeb0f18f3abaca8f72bff02ceac09adf3..12a8b58a3738f9da2f268c30ddc18bccebf8889b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Septoria reference humidity model - spatial version
+# Septoria reference (simplified) humidity model - spatial version
 The reference humidity model was developed as a supplement to 
 the Humidity model. In this model 20 consecutive hours are 
 required to fulfil a risk period. One constraint in this 
@@ -36,29 +36,48 @@ for the risk of Septoria, Easy to map and calculate based on weather data alone.
 The model has been implemented by [Tor-Einar Skog](https://nibio.no/en/employees/tor-einar-skog), [NIBIO](https://nibio.no/en). It is designed to fit into the gridded pest prediction models of [VIPS](https://nibio.no/en/services/vips).
 
 ### Software requirements
-The model can only be run on Linux, as some of the tools mentioned below are only available on Linux. The development and testing of the model has been done using [Ubuntu Linux 22.04LTS](https://ubuntu.com/).
+The model can only be run on Linux, as some of the tools mentioned below are only available on Linux. The development and testing of the model has been done using [Ubuntu Linux](https://ubuntu.com/), versions 22/24.
+
 #### CDO and GDAL
-The heavy lifting in this model is done by the tools [CDO](https://code.mpimet.mpg.de/projects/cdo) and [GDAL](https://gdal.org/). These tools need to be installed and available. CDO is only available on Linux.
+The heavy lifting in this model is done by the tools [CDO](https://code.mpimet.mpg.de/projects/cdo) and [GDAL](https://gdal.org/). These tools need to be installed and available. GDAL can be installed by your package manager. CDO is only available on Linux. CDO (and Python, see below) is managed by [MiniConda](https://docs.anaconda.com/free/miniconda/index.html). All requirements must be specified in the `conda_environment.yml` file.
 
 #### Python requirements
-The Python requirements are specified in `requirements.txt` file, and are included in the virtualenv created by the `run_SEPTREFHUM.sh` (see below).
+The Python requirements are specified in `conda_environment.yml` file, and are included in the conda environment created by the `run_SEPTREFHUM.sh` (see below).
 
 ### Input data requirements
-The model (as per 2023-10-25) assumes that weather data files named `met_1_0km_nordic-[YYYY-MM-DD].nc` are available in the `in/` folder. The files must contain hourly timesteps with the following weather parameters:
+The model reads weather data files from this path: `[WEATHER_DATA_DIR]/[FILENAME_PATTERN]` . The variables are shell environment variables, see below. The files must contain hourly timesteps with the following weather parameters:
 
 * RR (Rainfall in mm)
 * UM (Relative humidity in %)
+* TM (Temperature in °C)
 
 ### Running the model
 It is required that you have set the following environment variables:
 
 ```bash
+# This is used to auto generate some variables and file names
+MODEL_ID="SEPTREFHUM_EU"
 # Where your application resides
-HOME_DIR=/home/foo/
+HOME_DIR=/disks/data01/gridmodels/SEPTREFHUM_EU/
 # Path to the weather data
 WEATHER_DATA_DIR=in/
+# Path to the archived weather data for previous years
+ARCHIVE_WEATHER_DATA_DIR=in/
+# Used for iterating the weather data files
+FILENAME_PATTERN="daily_archive_*.nc"
+# Used to extract date info from the filename
+FILENAME_DATEFORMAT="daily_archive_%Y%m%d.nc"
+# Names of weather parameters in NetCDF files
+# Hourly precipitation
+RR="hourly_precipitation"
+# Relative humidity (2m)
+UM="relative_humidity_2m"
+# Relative humidity (2m)
+TM="air_temperature_2m"
+# Timezone for weather data/daily aggregations
+LOCAL_TIMEZONE="CET"
 # Path to optional CSV file with polygons for masking result. 
-MASK_FILE=Norge_landomrader.csv
+MASK_FILE=europe_coastline.csv
 # Path to the output (GeoTIFF) files as seen from the running model code
 DATA_DIR=out/
 # Path to the generated mapfile as seen from the running model code
@@ -68,11 +87,13 @@ MAPSERVER_DATA_DIR=/foo/mapserver/data/SEPTREFHUM/
 # Where your generated MAPFILE and query templates should be placed
 MAPSERVER_MAPFILE_DIR=/foo/mapserver/wms/SEPTREFHUM/
 # Where mapserver logs for this WMS are written
-MAPSERVER_LOG_FILE=/foo/log/SEPTREFHUM.log
+MAPSERVER_LOG_FILE=/foo/mapserver/log/SEPTREFHUM.log
 # Path to the temporary directory for writing temporary files and images. Must be writable by the user the web server is running as
 MAPSERVER_IMAGE_PATH=/foo/mapserver/tmp/
 # The value of the EXTENT parameter in Mapserver's mapfile. Units are DD (Decimal degrees)
-MAPSERVER_EXTENT="-1.5831861262936526 52.4465003983706595 39.2608060398730458 71.7683216082912736"
+MAPSERVER_EXTENT="-23.5 29.5 62.5 70.5"
+# Whether or not to debug log. False if not given.
+DEBUG=False
 ```
 
 ...this is the contents of the `env-sample` file
@@ -80,9 +101,10 @@ MAPSERVER_EXTENT="-1.5831861262936526 52.4465003983706595 39.2608060398730458 71
 ```bash
 $ ./run_SEPTREFHUM.sh
 ```
-This creates a Python virtualenv, installs all the Python dependencies, runs the model and stores output in a log file. 
+This creates a Conda environment, installs all the CDO/Python dependencies, runs the model and stores output in a log file. 
 
 Alternatively, primarily for development purposes, you can run the Python script SEPTREFHUM directly:
+
 ```bash
 $ ./SEPTREFHUM.py
 ```
@@ -104,13 +126,13 @@ A [Jinja2](https://pypi.org/project/Jinja2/) template mapfile (for [Mapserver](h
 
 Examples of the two layers are shown below
 
-![WARNING_STATUS example. Showing Norway and surrounding area](./WARNING_STATUS_layer_example.png)
+![WARNING_STATUS example. Showing Europe and surrounding areas](./WARNING_STATUS_layer_example.png)
 
-*WARNING_STATUS example. Showing Norway*
+*WARNING_STATUS example. Showing Europe and surrounding areas*
 
-![WHS (Wet Hour Sum) example. Showing Norway and surrounding area](./WHS_layer_example.png)
+![WHS (Wet Hour Sum) example. Showing Europe and surrounding areas](./WHS_layer_example.png)
 
-*WHS (Wet Hour Sum) example. Showing Norway*
+*WHS (Wet Hour Sum) example. Showing Europe and surrounding areas*
 
 ## Notes to self
 
diff --git a/SEPTREFHUM.py b/SEPTREFHUM.py
index 3021e9e12e40cedf2860f15c44d65151a8554153..3f2e171ed4c1c7898e818c064d4d844836aeea4b 100755
--- a/SEPTREFHUM.py
+++ b/SEPTREFHUM.py
@@ -22,31 +22,93 @@
 # * GDAL >= v 3.4.3 built with Python support
 # * For Python: See requirements.txt
 
-
-import os, sys, subprocess,glob
-from dotenv import load_dotenv
-from datetime import datetime, timezone, timedelta
-from jinja2 import Environment, FileSystemLoader
+import os
+import sys
+import subprocess
+import glob
 import pytz
 import netCDF4 as nc
 import configparser
+import logging
+import shutil
+from dotenv import load_dotenv
+from datetime import datetime, timedelta
+from jinja2 import Environment, FileSystemLoader
+
+# Introduced to improve the logging of the script
+def run_command(command, stdout=subprocess.PIPE):
+    logging.debug(f"{command}")
+    try:
+        result = subprocess.run(
+            command,
+            stdout=stdout,
+            stderr=stdout,
+            shell=True,
+            text=True,
+            check=True,
+        )
+        if result.stdout:
+            result_lines = result.stdout.splitlines()
+            for line in result_lines:
+                logging.debug(line.strip())
+            return result_lines
+        if result.stderr:
+            for line in result.stderr.splitlines():
+                logging.error(line.strip())
+    except subprocess.CalledProcessError as e:
+        logging.error(f"{e}")
 
 # Paths config
-# Create a .env file from dotenv-sample
 load_dotenv()
 # Get language stuff
 config = configparser.ConfigParser()
 config.read("SEPTREFHUM.cfg")
-
-# Path to weather data
+# Logging config
+DEBUG = False if os.getenv("DEBUG") is None or os.getenv("DEBUG").lower() == "false" else True
+logging.getLogger().handlers.clear()
+logging.basicConfig(
+    level=logging.DEBUG if DEBUG else logging.INFO,
+    format="%(asctime)s - %(levelname).4s - (%(filename)s:%(lineno)d) - %(message)s",
+)
+
+# Paths to weather data
+model_id = os.getenv("MODEL_ID")
+home_dir = os.getenv("HOME_DIR")
 infile_path  = os.getenv("WEATHER_DATA_DIR")
-# Path to store generated GeoTIFF files
-outfile_path = os.getenv("DATA_DIR")
-# Where to store intermediary calculations
-tmpfile_path = "tmp/"
+infile_archive_path  = os.getenv("ARCHIVE_WEATHER_DATA_DIR")
+# Used for iterating the weather data files
+filename_pattern = os.getenv("FILENAME_PATTERN")
+# Date format of weather data filenames
+filename_dateformat = os.getenv("FILENAME_DATEFORMAT")
+
+# Names of weather parameters in NetCDF files
+RR = os.getenv("RR")
+UM = os.getenv("UM")
+TM = os.getenv("TM")
+
+local_timezone = pytz.timezone(os.getenv("LOCAL_TIMEZONE"))
+today = datetime.now(local_timezone)
+if len(sys.argv) > 1:
+    year = int(sys.argv[1])
+    logging.info(f"Run for year={year} from param")
+else:
+    year = today.year
+    logging.info(f"Run for current year ({year})")
 
-# TODO: Make this configurable (.env)
-local_timezone = pytz.timezone("Europe/Oslo")
+weather_data_path = infile_path
+if year < today.year:
+    weather_data_path = f"{infile_archive_path}{year}/"
+logging.info(f"Use weather data from {weather_data_path}")
+
+# Path to store intermediary calculations and generated results
+tmpfile_path = f"tmp/{year}/"
+os.makedirs(tmpfile_path, exist_ok=True)
+result_tif_path = f"{os.getenv('DATA_DIR')}{year}/"
+os.makedirs(result_tif_path, exist_ok=True)
+result_mapfile_path = f"{os.getenv('MAPFILE_DIR')}{year}/"
+os.makedirs(result_mapfile_path, exist_ok=True)
+
+TEMPERATURE_THRESHOLD = 8.0
 
 # Iterate the set of hourly weather data files
 # 1. When's the latest wh_[DATE].nc file? - set earliest weather data file: start_date = [DATE]-2 days
@@ -54,27 +116,29 @@ local_timezone = pytz.timezone("Europe/Oslo")
 start_date = None
 last_wh_date = None
 #"""
-for wh_file in glob.glob(f"{tmpfile_path}wh_2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9].nc"):          
-    current_wh_file_date = local_timezone.localize(datetime.strptime(f"{wh_file[7:17]}", "%Y-%m-%d"))
+for wh_file in glob.glob(f"{tmpfile_path}wh_{year}-[01][0-9]-[0123][0-9].nc"):
+    current_wh_file_date = local_timezone.localize(datetime.strptime(f"{wh_file[12:22]}", "%Y-%m-%d"))
     if last_wh_date is None or last_wh_date < current_wh_file_date:
        last_wh_date = current_wh_file_date
 if last_wh_date is not None:
     start_date = last_wh_date - timedelta(days=2)
-    print(f"Last date of WH calculations is {last_wh_date}. Start date = {start_date}")
-
+    logging.info(f"Last date of WH calculations is {last_wh_date}. Start date = {start_date}")
 
+weatherdata_files = glob.glob(f"{weather_data_path}{filename_pattern}")
+logging.debug(f"{weather_data_path}{filename_pattern}")
+logging.debug("What are the weatherdata files?")
+logging.debug(weatherdata_files)
 
-# TODO: let filename/pattern be configurable
-weatherdata_files = glob.glob(f"{infile_path}met_1_0km_nordic-*.nc")
-for file_path in weatherdata_files:
+for file_path in sorted(weatherdata_files):
     # TODO: When filename/pattern is configurable: make the string search adaptable
     file_name = os.path.basename(file_path)
-    file_date = file_name[file_name.index("nordic")+7:file_name.index("nordic")+17]
-    # Skip if we don't have a complete date (10 characters), which could indicate that we are looking at a yearly file of daily data
-    if len(file_date) != 10:
+    # Skip if we don't have a complete date, which could indicate that we are looking at a yearly file of daily data
+    try:
+        wh_sum_date = local_timezone.localize(datetime.strptime(file_name, filename_dateformat))
+    except ValueError as e:
+        logging.error(e)
         continue
-    
-    wh_sum_date = local_timezone.localize(datetime.strptime(f"{file_date}", "%Y-%m-%d"))
+
     # Only process files from the three last days (if this is not a work from scratch)
     if start_date is not None and wh_sum_date < start_date:
          continue
@@ -83,21 +147,19 @@ for file_path in weatherdata_files:
     with nc.Dataset(file_path, 'r') as weatherdata_file:
         file_timesteps = len(weatherdata_file.variables["time"])
         if  file_timesteps < 23:
-            print(f"{file_path} has {file_timesteps} timesteps. Skipping it.")
+            logging.info(f"{file_path} has {file_timesteps} timesteps. Skipping it.")
             continue
 
     # Produce daily files with WH_SUM, which is the number of "Wet hours" (WH) for a given day
     # WH is defined as RR > 0.2 || UM > 88.0
     wh_sum_date_str = wh_sum_date.strftime("%Y-%m-%d")
-    wh_sum_hour_str = wh_sum_date.strftime("%H") 
-    subprocess.run(
-        f'cdo -s -O -setdate,{wh_sum_date_str} -settime,{wh_sum_hour_str}:00:00 -chname,WH,WH_DAYSUM -timsum -selname,WH -aexpr,"WH = RR > 0.2 || UM > 88.0 ? 1 : 0;" {file_path} {tmpfile_path}wh_{file_date}.nc',
-        shell=True
-        )
+    wh_sum_hour_str = wh_sum_date.strftime("%H")
+    logging.info("Run WH calculations for " + wh_sum_date_str)
+    run_command(command=f'cdo -s -O -setdate,{wh_sum_date_str} -settime,{wh_sum_hour_str}:00:00 -chname,WH,WH_DAYSUM -timsum -selname,WH -aexpr,"WH = ({TM} >= {TEMPERATURE_THRESHOLD} && ({RR} > 0.2 || {UM} > 88.0)) ? 1 : 0;" {file_path} {tmpfile_path}wh_{wh_sum_date_str}.nc')
 
 # Concatenate daily files > one file with daily values
 # Additive calculation - this file can be stored between calculations
-subprocess.run(f'cdo -s -O mergetime {tmpfile_path}wh_2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9].nc {tmpfile_path}wh_daysum.nc', shell=True)
+run_command(command=f'cdo -s -O mergetime {tmpfile_path}wh_2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9].nc {tmpfile_path}wh_daysum.nc')
 
 # Check timesteps - that we have no missing data
 wh_daysum = nc.Dataset(f'{tmpfile_path}wh_daysum.nc', 'r')
@@ -108,7 +170,7 @@ for timestep in timesteps:
         if timestep - previous_timestep != 86400.0:
             timestep_str = datetime.fromtimestamp(timestep).astimezone(local_timezone).strftime("%Y-%m-%d")
             previous_timestep_str = datetime.fromtimestamp(previous_timestep).astimezone(local_timezone).strftime("%Y-%m-%d")
-            print(f"ERROR: Missing weather data between {previous_timestep_str} and {timestep_str}. Exiting.", file=sys.stderr)
+            logging.error(f"Missing weather data between {previous_timestep_str} and {timestep_str}. Exiting.", file=sys.stderr)
             exit(1)
     previous_timestep = timestep
 wh_daysum.close()
@@ -118,11 +180,11 @@ wh_daysum.close()
 # Add sum of WH_DAYSUM[yesterday] + WH_DAYSUM[today] + WH_DAYSUM[tomorrow] into WHS[today]
 # timselsum skips every 3 steps when summing 3 timestemps, so we must
 # create three different files and then merge them
-subprocess.run(f'cdo -s timselsum,3,0 {tmpfile_path}wh_daysum.nc {tmpfile_path}wh_3daysum_tmp_0.nc', shell=True)
-subprocess.run(f'cdo -s timselsum,3,1 {tmpfile_path}wh_daysum.nc {tmpfile_path}wh_3daysum_tmp_1.nc', shell=True)
-subprocess.run(f'cdo -s timselsum,3,2 {tmpfile_path}wh_daysum.nc {tmpfile_path}wh_3daysum_tmp_2.nc', shell=True)
+run_command(command=f'cdo -s timselsum,3,0 {tmpfile_path}wh_daysum.nc {tmpfile_path}wh_3daysum_tmp_0.nc')
+run_command(command=f'cdo -s timselsum,3,1 {tmpfile_path}wh_daysum.nc {tmpfile_path}wh_3daysum_tmp_1.nc')
+run_command(command=f'cdo -s timselsum,3,2 {tmpfile_path}wh_daysum.nc {tmpfile_path}wh_3daysum_tmp_2.nc')
 
-subprocess.run(f'cdo -s -chname,WH_DAYSUM,WHS -mergetime {tmpfile_path}wh_3daysum_tmp_*.nc {tmpfile_path}wh_3daysum_tmp_merged.nc', shell=True)
+run_command(command=f'cdo -s -chname,WH_DAYSUM,WHS -mergetime {tmpfile_path}wh_3daysum_tmp_*.nc {tmpfile_path}wh_3daysum_tmp_merged.nc')
 
 # the last timesteps are most likely wrong, due to lack of "tomorrows" when performing timselsum
 # To remove the last ones:
@@ -153,22 +215,23 @@ for time_bnd in time_bnds:
         number_of_timesteps_to_remove = number_of_timesteps_to_remove + 1
 wh_3daysum.close()
 number_of_timesteps_to_keep = len(time_bnds) - number_of_timesteps_to_remove
-subprocess.run(f'cdo -s -seltimestep,1/{number_of_timesteps_to_keep} {tmpfile_path}wh_3daysum_tmp_merged.nc {tmpfile_path}wh_3daysum.nc', shell=True)
+run_command(command=f'cdo -s -seltimestep,1/{number_of_timesteps_to_keep} {tmpfile_path}wh_3daysum_tmp_merged.nc {tmpfile_path}wh_3daysum.nc')
 
 
 # Classifying warning status for the WHS model
-# 0  == WHS            --> Grey
-# 0  <  WHS <  20      --> Yellow
-# 20 <= WHS < 40       --> Orange
+# 0  =<  WHS <  20      --> Green
+# 20 <= WHS < 40       --> Yellow
 # 40 <= WHS            --> Red
-subprocess.run(f'cdo -s -aexpr,"WARNING_STATUS = WHS <= 0 ? 0 : -1; WARNING_STATUS = WHS < 20 && WARNING_STATUS == -1 ? 2 : WARNING_STATUS; WARNING_STATUS = WHS < 40 && WARNING_STATUS == -1 ? 3 : WARNING_STATUS; WARNING_STATUS = WHS >= 40 && WARNING_STATUS == -1 ? 4 : WARNING_STATUS" {tmpfile_path}wh_3daysum.nc {tmpfile_path}result_unmasked.nc', shell=True)
+run_command(command=f'cdo -s -aexpr,"WARNING_STATUS = WHS < 0 ? 0 : -1; WARNING_STATUS = WHS < 20 && WARNING_STATUS == -1 ? 2 : WARNING_STATUS; WARNING_STATUS = WHS < 40 && WARNING_STATUS == -1 ? 3 : WARNING_STATUS; WARNING_STATUS = WHS >= 40 && WARNING_STATUS == -1 ? 4 : WARNING_STATUS" {tmpfile_path}wh_3daysum.nc {tmpfile_path}result_unmasked.nc')
+
+run_command(command=f"rm {tmpfile_path}result.nc")
 
 # Mask results using a CSV file with polygons
 # Env variable MASK_FILE must be set
 if os.getenv("MASK_FILE") is not None:
     mask_file = os.getenv("MASK_FILE")
-    print(f"Applying mask file {mask_file} to result.nc")
-    subprocess.run(f'cdo -maskregion,{mask_file} {tmpfile_path}result_unmasked.nc {tmpfile_path}result.nc', shell=True)
+    logging.info(f"Applying mask file {mask_file} to result.nc")
+    run_command(command=f'cdo -P 6 -maskregion,{mask_file} {tmpfile_path}result_unmasked.nc {tmpfile_path}result.nc')
 else:
     os.rename(f"{tmpfile_path}result_unmasked.nc", f"{tmpfile_path}result.nc")
 #"""
@@ -185,26 +248,24 @@ for timestep in timesteps:
     timestep_date = datetime.fromtimestamp(timestep).astimezone(local_timezone)
     file_date = timestep_date.astimezone(local_timezone).strftime("%Y-%m-%d")
     timestep_dates.append(file_date)
-    # If start_date is set, that means that we should only generate result files from that date on 
-    # -- IF GeoTIFF fiels already exists before that.
-    if start_date is not None and timestep_date < start_date:
-         if os.path.isfile(f'{outfile_path}result_WARNING_STATUS_{file_date}.tif') and os.path.isfile(f'{outfile_path}result_{file_date}.tif'):
-            continue
 
     # Create NetCDF result file
-    subprocess.run(f'cdo -s -seltimestep,{timestep_index}/{timestep_index} {tmpfile_path}result.nc {tmpfile_path}result_{file_date}.nc', shell=True)
+    run_command(command=f'cdo -s -seltimestep,{timestep_index}/{timestep_index} {tmpfile_path}result.nc {tmpfile_path}result_{file_date}.nc')
     # Convert to GeoTIFF
     # We only need WHS and WARNING_STATUS
     # Merge the WARNING_STATUS and WHS variables into one GeoTIFF file with two bands. 
     # The WARNING_STATUS should always be band #1
     # We must delete the GeoTIFF file before merging
-    subprocess.run(f'rm {outfile_path}result_*{file_date}*.tif', shell=True)
+    existing_result_files_for_date = f"{result_tif_path}result_*{file_date}*.tif"
+    files = glob.glob(existing_result_files_for_date)
+    if files:
+        run_command(command=f'rm {existing_result_files_for_date}')
     with open("/dev/null", "w") as devnull:
-        subprocess.run(f'gdal_translate -ot Int16 -of GTiff  NETCDF:"{tmpfile_path}result_{file_date}.nc":WARNING_STATUS {tmpfile_path}result_WARNING_STATUS_{file_date}_lcc.tif', shell=True, stdout=devnull)
-        subprocess.run(f'gdal_translate -ot Float32 -of GTiff  NETCDF:"{tmpfile_path}result_{file_date}.nc":WHS {tmpfile_path}result_{file_date}_lcc.tif', shell=True, stdout=devnull)
+        run_command(command=f'gdal_translate -ot Int16 -of GTiff  NETCDF:"{tmpfile_path}result_{file_date}.nc":WARNING_STATUS {tmpfile_path}result_WARNING_STATUS_{file_date}_lcc.tif', stdout=devnull)
+        run_command(command=f'gdal_translate -ot Float32 -of GTiff  NETCDF:"{tmpfile_path}result_{file_date}.nc":WHS {tmpfile_path}result_{file_date}_lcc.tif', stdout=devnull)
         # Need to reproject the files, to ensure we have the projection given in the generted mapfile. We always use EPSG:4326 for this
-        subprocess.run(f'gdalwarp -t_srs EPSG:4326 {tmpfile_path}result_WARNING_STATUS_{file_date}_lcc.tif {outfile_path}result_WARNING_STATUS_{file_date}.tif', shell=True, stdout=devnull)
-        subprocess.run(f'gdalwarp -t_srs EPSG:4326 {tmpfile_path}result_{file_date}_lcc.tif {outfile_path}result_{file_date}.tif', shell=True, stdout=devnull)
+        run_command(command=f'gdalwarp -t_srs EPSG:4326 {tmpfile_path}result_WARNING_STATUS_{file_date}_lcc.tif {result_tif_path}result_WARNING_STATUS_{file_date}.tif', stdout=devnull)
+        run_command(command=f'gdalwarp -t_srs EPSG:4326 {tmpfile_path}result_{file_date}_lcc.tif {result_tif_path}result_{file_date}.tif', stdout=devnull)
 
     timestep_index = timestep_index + 1
 
@@ -223,21 +284,27 @@ for language_code in language_codes:
 env = Environment(loader=FileSystemLoader('.'))
 template = env.get_template("mapfile/template.j2")
 output = template.render({
+     "model_id":model_id,
      "timestep_dates": timestep_dates,
-     "mapserver_data_dir": os.getenv("MAPSERVER_DATA_DIR"),
-     "mapserver_mapfile_dir": os.getenv("MAPSERVER_MAPFILE_DIR"),
+     "mapserver_data_dir": f"{os.getenv('MAPSERVER_DATA_DIR')}{year}/",
+     "mapserver_mapfile_dir": f"{os.getenv('MAPSERVER_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"),
      "languages": languages,
      "language_codes": language_codes
 })
-mapfile_outdir = os.getenv("MAPFILE_DIR")
-with open(f"{mapfile_outdir}/SEPTREFHUM.map", 'w') as f:
+
+with open(f"{result_mapfile_path}{model_id}.map", 'w') as f:
         f.write(output)
 
+# Copy query templates to outdir
+query_template = os.path.join(home_dir, "mapfile/query_template.xml")
+query_template_whs = os.path.join(home_dir, "mapfile/query_template_WHS.xml")
+shutil.copy(query_template, result_mapfile_path)
+shutil.copy(query_template_whs, result_mapfile_path)
 
 # Remove all temporary/intermediary files
-subprocess.run(f"rm {tmpfile_path}wh_3daysum*.nc", shell=True)
-subprocess.run(f"rm {tmpfile_path}result*.nc", shell=True)
-subprocess.run(f"rm {tmpfile_path}result*.tif", shell=True)
+run_command(command=f"rm {tmpfile_path}wh_3daysum*.nc")
+run_command(command=f"rm {tmpfile_path}result_*.nc")
+run_command(command=f"rm {tmpfile_path}result*.tif")
diff --git a/WARNING_STATUS_layer_example.png b/WARNING_STATUS_layer_example.png
index ca87fc7d6920b28e2f78542dd3e7dafcf7a052b6..4f153b9953d0b00f86f943290d3d1e34fad402c8 100644
Binary files a/WARNING_STATUS_layer_example.png and b/WARNING_STATUS_layer_example.png differ
diff --git a/WHS_layer_example.png b/WHS_layer_example.png
index 36c6ef49c4c9653b4a33822cdd6996ff0738df9e..9228e9f2ffcb450ed64d92382a77027753f985e5 100644
Binary files a/WHS_layer_example.png and b/WHS_layer_example.png differ
diff --git a/conda_environment.yml b/conda_environment.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7f5511fc7bee23d497e3f5b3ea1f76a17e7e98c8
--- /dev/null
+++ b/conda_environment.yml
@@ -0,0 +1,9 @@
+name: SEPTREFHUM
+channels:
+  - conda-forge 
+dependencies:
+  - cdo=2.4.0
+  - Jinja2
+  - netCDF4
+  - pytz
+  - python-dotenv
\ No newline at end of file
diff --git a/env-sample b/env-sample
index 5b69fb0e4f5493da87833e0276198e52255af538..8303ca3e5be1b2f989dd07df9c4c060a376b42aa 100644
--- a/env-sample
+++ b/env-sample
@@ -1,11 +1,28 @@
 # Use this as an example to create your own .env file
 
+# This is used to auto generate some variables and file names
+MODEL_ID="SEPTREFHUM_EU"
 # Where your application resides
-HOME_DIR=/home/foo/2023_vips_in_space/
+HOME_DIR=/disks/data01/gridmodels/SEPTREFHUM_EU/
 # Path to the weather data
 WEATHER_DATA_DIR=in/
-# Path to optional CSV file with polygons for masking result. 
-# MASK_FILE=Norge_landomrader.csv
+# Path to the archived weather data for previous years
+ARCHIVE_WEATHER_DATA_DIR=in/
+# Used for iterating the weather data files
+FILENAME_PATTERN="daily_archive_*.nc"
+# Used to extract date info from the filename
+FILENAME_DATEFORMAT="daily_archive_%Y%m%d.nc"
+# Names of weather parameters in NetCDF files
+# Hourly precipitation
+RR="hourly_precipitation"
+# Relative humidity (2m)
+UM="relative_humidity_2m"
+# Relative humidity (2m)
+TM="air_temperature_2m"
+# Timezone for weather data/daily aggregations
+LOCAL_TIMEZONE="CET"
+# Path to optional CSV file with polygons for masking result.
+MASK_FILE=europe_coastline.csv
 # Path to the output (GeoTIFF) files as seen from the running model code
 DATA_DIR=out/
 # Path to the generated mapfile as seen from the running model code
@@ -19,4 +36,6 @@ MAPSERVER_LOG_FILE=/foo/mapserver/log/SEPTREFHUM.log
 # Path to the temporary directory for writing temporary files and images. Must be writable by the user the web server is running as
 MAPSERVER_IMAGE_PATH=/foo/mapserver/tmp/
 # The value of the EXTENT parameter in Mapserver's mapfile. Units are DD (Decimal degrees)
-MAPSERVER_EXTENT="-1.5831861262936526 52.4465003983706595 39.2608060398730458 71.7683216082912736"
\ No newline at end of file
+MAPSERVER_EXTENT="-23.5 29.5 62.5 70.5"
+# Default value is false
+DEBUG=False
diff --git a/europe_coastline.csv b/europe_coastline.csv
new file mode 100644
index 0000000000000000000000000000000000000000..4edfdce61ad6dff11c1d40a222c7b4daff1ebcda
Binary files /dev/null and b/europe_coastline.csv differ
diff --git a/mapfile/template.j2 b/mapfile/template.j2
index 14f1a7916190edf9922ee9bfee58cfe297595e87..fcc5846ea60809b88d555a31b980701b2324784e 100644
--- a/mapfile/template.j2
+++ b/mapfile/template.j2
@@ -40,41 +40,26 @@ WEB
             "wms_inspire_capabilities" "embed"
             "wms_languages" "{{ language_codes|join(",")}}" # The first is the default
             {% endif %}
-            "wms_abstract"  "<div id='preamble'>
-              <p>The reference humidity model was developed as a supplement to
-              the Humidity model. In this model 20 consecutive hours are
-              required to fulfil a risk period. One constraint in this
-              method is that you can have 19 consecutive risk hours  or,
-              fx 14 hours with risk then one hour below the Rh threshold
-              and then maybe 14 hours again with risk hours. In one of
-              these situations, the model will indicate a risk. In the
-              reference model the definition of Humid hours was introduced.
-              The Rh threshold was avoided as humid hours do not need to be
-              consecutive. The running sum of humid hours across three days
-              indicate that the Septoria risk is higher than if you have
-              three days with humid conditions than two or one. The operation
-              of the model should include weather forecast data and should
-              run 6 days ahead from current day if you include a 7-day weather
-              forecast (60 hours from national met office and until 7 days from ECMWF)</p>
-            </div>
-            <div id='body'>
+            "wms_abstract"  "<div>
+              <p style=\"font-style: italic;\">
+              This map is based on a restricted version of the Septoria Humidity Model, using only the weather 
+              dependent aspects of this Decision Support System. The full Septoria Humidity Model is available 
+              in the IPM Decisions platform.<br/>
+              Risks displayed in the map may be higher or lower when crop specific parameters are provided. 
+              Consultation of the full version is required to support IPM decisions.
+              </p>
+              <p>
+              This map indicates the risk of splash-borne foliar diseases of wheat (septoria leaf blotch, 
+              glume blotch and tan spot) based only on the number of 'wet hours' in a 72 hour period (yesterday, 
+              today and tomorrow). 
+              </p>
+              <p>
+              The risk criteria were developed in Denmark as the <a style=\"color: blue;\" href='https://dca.au.dk/en/current-news/news/show/artikel/risikomodeller-kan-reducere-brugen-af-fungicider-mod-septoria-1' target='new'>Septoria Humidity Model (Restricted)</a>.
+              </p>
               <p>
-              The model was tested against the Humidity model in a Danish
-              Septoria project funded by the GUDP. The threshold of 40 was
-              defined as high risk as this coincided with periods when the
-              humidity model recommended to apply fungicide (if not already protected).
-              The humidity model includes a decision model about when to spray,
-              protection periods ect. The reference model was used to quality
-              control the recommendations in a way that, if the reference humidity
-              hours were higher than 40 (no thresholds) then the user should
-              check the raw data for calculation of the Humidity model (threshold,
-              20 consecutive hours). If 2-3 periods of 17, 18, or 19 consecutive
-              hours appear, then one can consider to protect the crop based on the
-              reference model alone.</p>
-              <p>The Humidity model is considered as a DSS with several components.
-              The reference humidity model is considered as a weather based submodel
-              for the risk of Septoria, Easy to map and calculate based on weather data alone.</p>
-              
+              The risk map can be used to assist (not replace) decisions by experienced crop managers, taking into account all relevant local risk factors. If a risk is indicated
+              in your area, please login and set up the complete Septoria Humidity Model for your farm, and check its outputs for a more in-depth assessment.
+              </p>
               <h3>Explanation of parameters</h3>
               <ul>
               <li>WHS = <span itemprop=\"WHS\">Wet hour sum</span></li>
@@ -82,8 +67,8 @@ WEB
             </div>
             "
         "wms_enable_request"  "*"
-        "wms_title"     "Septoria Reference Humidity Model"
-        #"wms_onlineresource" "https://testvips.nibio.no/cgi-bin/SEPTREFHUM"
+        "wms_title.en"     "Septoria Humidity Model (Restricted)"
+        "wms_title.nb"     "Septoria-fuktmodell (Forenklet)"
         "wms_getfeatureinfo_formatlist" "text/plain,text/html,text/xml"
         "wms_accessconstraints" "none"
         "wms_addresstype" ""
@@ -115,7 +100,7 @@ END
 
 {% for timestep_date in timestep_dates %}
 LAYER
-    NAME "SEPTREFHUM.WARNING_STATUS.{{ timestep_date }}"
+    NAME "{{model_id}}.WARNING_STATUS.{{ timestep_date }}"
     DATA "{{mapserver_data_dir}}result_WARNING_STATUS_{{ timestep_date }}.tif"
     TEMPLATE "{{mapserver_mapfile_dir}}query_template.xml" TOLERANCE 1 TOLERANCEUNITS PIXELS
     TYPE RASTER
@@ -131,25 +116,20 @@ LAYER
       {
           \"isWarningStatus\": true,
           \"legendItems\": [
-          {
-            \"classification\": 0,
-            \"legendLabel\": \"{{ language.no_risk }}\",
-            \"legendIconCSS\": \"width: 25px; background-color: #707070;\"
-          },
           {
             \"classification\": 2,
             \"legendLabel\": \"{{ language.low_risk }}\",
-            \"legendIconCSS\": \"width: 25px; background-color: #FFCC00;\"
+            \"legendIconCSS\": \"width: 25px; background-color: #3ac47d;\"
           },
           {
             \"classification\": 3,
             \"legendLabel\": \"{{ language.medium_risk }}\",
-            \"legendIconCSS\": \"width: 25px; background-color: #FFCC99;\"
+            \"legendIconCSS\": \"width: 25px; background-color: #f7b924;\"
           },
           {
             \"classification\": 4,
             \"legendLabel\": \"{{ language.high_risk }}\",
-            \"legendIconCSS\": \"width: 25px; background-color: #FF0000;\"
+            \"legendIconCSS\": \"width: 25px; background-color: #d92550;\"
           }
         ]
       }
@@ -160,38 +140,31 @@ LAYER
   
     # class using simple string comparison, equivalent to ([pixel] = 0)
   
-    CLASS
-      NAME "No infection risk"
-      EXPRESSION ([pixel] >= 0 AND [pixel] < 2) 
-      STYLE
-          COLOR 112 112 112
-      END
-    END
     CLASS
       NAME "Low infection risk"
       EXPRESSION ([pixel] >= 2 AND [pixel] < 3) 
       STYLE
-          COLOR 255 204 0
+          COLOR 58 196 125
       END
     END
     CLASS
       NAME "Medium infection risk"
       EXPRESSION ([pixel] >= 3 AND [pixel] < 4) 
       STYLE
-          COLOR 255 153 0
+          COLOR 247 185 36
       END
     END
     CLASS
       NAME "High infection risk"
       EXPRESSION ([pixel] >= 4) 
       STYLE
-          COLOR  255 0 0
+          COLOR  217 37 80
       END
     END
 END # Layer
   
 LAYER
-     NAME "SEPTREFHUM.WHS.{{ timestep_date }}"
+     NAME "{{model_id}}.WHS.{{ timestep_date }}"
      DATA "{{mapserver_data_dir}}result_{{ timestep_date }}.tif"
      TEMPLATE "{{mapserver_mapfile_dir}}query_template_WHS.xml" TOLERANCE 1 TOLERANCEUNITS PIXELS
      TYPE RASTER
diff --git a/requirements.txt b/requirements.txt
index 222acb6b40f5f293dba1fe4592ae578604cefa3f..8c05a79212b9c5ab894729bec285e7230620344e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
+# Not in use anymore. Please specify your Python requirements in /conda_environment.yml
 Jinja2
 netCDF4
 pytz
diff --git a/run_SEPTREFHUM.sh b/run_SEPTREFHUM.sh
index 965e4f5548935f3a7ca4e72ee9227677ffcbf953..c96c0598c8df8c5454635c69f87c7e54f03d93c1 100755
--- a/run_SEPTREFHUM.sh
+++ b/run_SEPTREFHUM.sh
@@ -18,48 +18,86 @@
 # Configures environment and logging before running the model
 # @author: Tor-Einar Skog <tor-einar.skog@nibio.no>
 
+# Defines HOME_DIR
+source .env
 
+validate_year() {
+    if [[ $1 =~ ^[0-9]{4}$ ]]; then
+        return 0
+    else
+        return 1
+    fi
+}
 
-# First: Test that we have CDO and GDAL installed
-if ! command -v cdo &> /dev/null
+# Check if the year parameter is passed and validate it
+if [ -n "$1" ]; then
+    if validate_year "$1"; then
+        year=$1
+    else
+        echo "Invalid year: $1. Please provide a valid 4-digit year."
+        exit 1
+    fi
+fi
+
+# Check for HOME_DIR
+if [ -z "${HOME_DIR}" ]
 then
-    echo "ERROR: CDO could not be found. Exiting."
+    echo "ERROR: \$HOME_DIR is not set. Please declare it in an .env file"
     exit
 fi
 
+# Paths to scripts and requirements
+LOG_FILE=${HOME_DIR}log/SEPTREFHUM.log
+REQUIREMENTS=${HOME_DIR}requirements.txt
+CDO_VERSION=2.4.0
+
+# Test that we have GDAL and Miniconda installed
 if ! command -v gdal_merge.py &> /dev/null
 then
     echo "ERROR: GDAL is either not installed, or not built with Python support. Exiting."
     exit
 fi
 
-# Defines HOME_DIR
-source .env
-
-# Check for HOME_DIR
-if [ -z "${HOME_DIR}" ]
+if ! command -v conda &> /dev/null
 then
-    echo "ERROR: \$HOME_DIR is not set. Please declare it in an .env file"
+    echo "ERROR: Miniconda is not installed. Pleare read: https://code.mpimet.mpg.de/projects/cdo/wiki/Anaconda"
     exit
 fi
 
-# Paths to scripts and requirements
-APP_PATH=${HOME_DIR}SEPTREFHUM/
-LOG_FILE=${APP_PATH}log/SEPTREFHUM.log
-REQUIREMENTS=${APP_PATH}requirements.txt
-
-cd $APP_PATH
+cd $HOME_DIR
 
-# Create and activate the virtual environment
-python3 -m venv .venv
-. .venv/bin/activate
-python3 -m pip install --upgrade pip
-pip install -r $REQUIREMENTS
+# Check if we need to create the virtual environment
+eval "$(conda shell.bash hook)"
+now=$(date +%s)
+if ! conda env list | grep -q "SEPTREFHUM "; then
+    echo "Conda env not found, creating it"
+    conda env create -f conda_environment.yml
+    conda activate SEPTREFHUM
+else
+    # Make sure we catch/update changes in dependencies
+    if [ -e last_run_timestamp ]; then
+        last_run_timestamp=$(<last_run_timestamp)
+        last_modified_env_file=$(stat -c "%Y" conda_environment.yml)
+        if [ $((last_run_timestamp - last_modified_env_file)) -lt 0 ]; then
+            echo "conda_environment.yml file has been updated. Updating the conda env. This may take a while"
+            conda env update --prune -f conda_environment.yml
+        fi
+    fi
+    conda activate SEPTREFHUM
+fi
 
 # Run the model
-echo "==== `date`: Running model" &>> "$LOG_FILE"
-python3 $APP_PATH/SEPTREFHUM.py &>> "$LOG_FILE"
-echo "==== `date`: DONE running model" &>> "$LOG_FILE"
+if [ -z "${year}" ]; then
+    echo "==== $(date): Running model for current year" >> "$LOG_FILE" 2>&1
+    python3 ${HOME_DIR}SEPTREFHUM.py >> "$LOG_FILE" 2>&1
+else
+    echo "==== $(date): Running model for ${year}" >> "$LOG_FILE" 2>&1
+    python3 ${HOME_DIR}SEPTREFHUM.py "$year" >> "$LOG_FILE" 2>&1
+fi
+echo "Run complete" >> "$LOG_FILE" 2>&1
 
 # Deactivate the virtual environment
-deactivate
+conda deactivate
+
+# Log this to compare with changes in conda_environment.yml
+echo $now > last_run_timestamp
diff --git a/test/README.md b/test/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..27da7dac1a3ffe070b9618129f98c3a932cba59e
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,63 @@
+# Testing the model
+
+Lacking proper pytest design, here's how to test any changes made to the model
+
+## 1. Get weather data from a single point
+In the `weather_data` folder, very small weather data files are available. They are 9x9 grids. You can get weather data in CSV format for a single grid point ([0,0]) by running e.g.
+
+```bash
+$ python3 ./test_util.py printweather > test_input_data.csv
+```
+
+## 2. Calculate the expected WHS
+This has been done in the example file `input_data_test.ods`
+
+## 3. Compare the spreadsheet calculations with the output from the model
+
+Run the model on the test data. Remember to set `WEATHER_DATA_DIR=test/` in your .env file
+
+```bash
+$ cd ../ && ./run_SEPTREFHUM.sh && cd test/
+```
+
+You can print out the results for the grid point ([0,0]) using 
+
+```bash
+$ python3 ./test_util.py printwhs
+```
+
+Example output (from 2024-05-16):
+
+```csv
+Date,WHS
+2024-04-02 00:00:00+00:00,0.0
+2024-04-03 00:00:00+00:00,0.0
+2024-04-04 00:00:00+00:00,0.0
+2024-04-05 00:00:00+00:00,0.0
+2024-04-06 00:00:00+00:00,0.0
+2024-04-07 00:00:00+00:00,0.0
+2024-04-08 00:00:00+00:00,6.0
+2024-04-09 00:00:00+00:00,6.0
+2024-04-10 00:00:00+00:00,6.0
+2024-04-11 00:00:00+00:00,9.0
+2024-04-12 00:00:00+00:00,10.0
+2024-04-13 00:00:00+00:00,10.0
+2024-04-14 00:00:00+00:00,1.0
+2024-04-15 00:00:00+00:00,0.0
+2024-04-16 00:00:00+00:00,0.0
+2024-04-17 00:00:00+00:00,0.0
+2024-04-18 00:00:00+00:00,0.0
+2024-04-19 00:00:00+00:00,0.0
+2024-04-20 00:00:00+00:00,0.0
+2024-04-21 00:00:00+00:00,0.0
+2024-04-22 00:00:00+00:00,0.0
+2024-04-23 00:00:00+00:00,0.0
+2024-04-24 00:00:00+00:00,0.0
+2024-04-25 00:00:00+00:00,0.0
+2024-04-26 00:00:00+00:00,0.0
+2024-04-27 00:00:00+00:00,0.0
+2024-04-28 00:00:00+00:00,0.0
+2024-04-29 00:00:00+00:00,1.0
+2024-04-30 00:00:00+00:00,1.0
+2024-05-01 00:00:00+00:00,1.0
+```
\ No newline at end of file
diff --git a/test/input_data_test.ods b/test/input_data_test.ods
new file mode 100644
index 0000000000000000000000000000000000000000..70ff2e5f90960d68be2ec429bdf21cd530ede930
Binary files /dev/null and b/test/input_data_test.ods differ
diff --git a/test/test_input_data.csv b/test/test_input_data.csv
new file mode 100644
index 0000000000000000000000000000000000000000..2bea142b3749de428b8975944a0ac6849585bd76
--- /dev/null
+++ b/test/test_input_data.csv
@@ -0,0 +1,769 @@
+time,air_temperature_2m,hourly_precipitation,relative_humidity_2m,wind_speed_10m
+2024-04-01 00:00:00+00:00,2.8562927,0.0,98.333694,0.9309476
+2024-04-01 01:00:00+00:00,3.334076,0.0,98.330826,2.2638726
+2024-04-01 02:00:00+00:00,3.5220032,0.0,94.67445,2.211714
+2024-04-01 03:00:00+00:00,3.6278992,0.0,87.56682,2.1706364
+2024-04-01 04:00:00+00:00,3.6538696,0.0,82.792786,2.23428
+2024-04-01 05:00:00+00:00,3.603119,0.0,81.76122,1.9989711
+2024-04-01 06:00:00+00:00,3.8006287,0.0,81.78531,1.549314
+2024-04-01 07:00:00+00:00,4.511017,0.0,81.53667,1.2992418
+2024-04-01 08:00:00+00:00,5.510071,0.0,78.60054,1.3781531
+2024-04-01 09:00:00+00:00,6.7626038,0.0,72.72112,2.9515054
+2024-04-01 10:00:00+00:00,7.85376,0.0,67.214195,4.4584346
+2024-04-01 11:00:00+00:00,8.682129,0.0,63.002243,5.1897955
+2024-04-01 12:00:00+00:00,9.061798,0.0,60.733112,5.6876793
+2024-04-01 13:00:00+00:00,10.023407,0.0,60.16156,4.91369
+2024-04-01 14:00:00+00:00,10.232452,0.0,62.010525,4.236514
+2024-04-01 15:00:00+00:00,10.063721,0.0,62.986507,3.8992472
+2024-04-01 16:00:00+00:00,9.477875,0.0,66.598,3.8032753
+2024-04-01 17:00:00+00:00,8.872253,0.0,67.31074,4.0440297
+2024-04-01 18:00:00+00:00,8.143951,0.0,66.10885,4.17318
+2024-04-01 19:00:00+00:00,8.289886,0.0,57.109394,3.8215322
+2024-04-01 20:00:00+00:00,7.375641,0.0,58.42426,4.4535203
+2024-04-01 21:00:00+00:00,6.641754,0.0,60.979465,4.758184
+2024-04-01 22:00:00+00:00,5.9720764,0.0,63.475945,5.241699
+2024-04-01 23:00:00+00:00,5.3795776,0.0,65.85665,5.685889
+2024-04-02 00:00:00+00:00,4.869049,0.0,66.77056,5.8307447
+2024-04-02 01:00:00+00:00,4.4186707,0.0,66.14863,6.984863
+2024-04-02 02:00:00+00:00,3.745575,0.0,69.6627,7.15697
+2024-04-02 03:00:00+00:00,3.2241516,0.0,71.83379,7.308538
+2024-04-02 04:00:00+00:00,2.742157,0.0,73.62445,7.7298365
+2024-04-02 05:00:00+00:00,2.383728,0.0,74.33776,8.085465
+2024-04-02 06:00:00+00:00,2.3536987,0.0,74.400345,8.487386
+2024-04-02 07:00:00+00:00,3.1348572,0.0,68.01688,8.28699
+2024-04-02 08:00:00+00:00,3.38974,0.0,66.673935,8.554916
+2024-04-02 09:00:00+00:00,3.6242065,0.0,63.83827,8.47512
+2024-04-02 10:00:00+00:00,3.6459045,0.0,63.00316,8.636076
+2024-04-02 11:00:00+00:00,3.838623,0.0,60.287586,8.2563925
+2024-04-02 12:00:00+00:00,4.126068,0.0,58.910896,7.9563847
+2024-04-02 13:00:00+00:00,3.887085,0.0,61.616585,7.3189206
+2024-04-02 14:00:00+00:00,4.091339,0.0,60.157753,6.710958
+2024-04-02 15:00:00+00:00,4.3034973,0.0,57.889668,6.1637983
+2024-04-02 16:00:00+00:00,4.4197083,0.0,56.653988,5.515145
+2024-04-02 17:00:00+00:00,4.318573,0.0,56.854927,5.04977
+2024-04-02 18:00:00+00:00,3.9439087,0.0,58.835503,4.363801
+2024-04-02 19:00:00+00:00,3.573822,0.0,59.329266,4.3722434
+2024-04-02 20:00:00+00:00,3.2326965,0.0,59.102146,4.3200755
+2024-04-02 21:00:00+00:00,2.8686523,0.0,59.68112,4.16634
+2024-04-02 22:00:00+00:00,2.5591125,0.0,58.31518,4.1994443
+2024-04-02 23:00:00+00:00,2.1419678,0.0,59.603333,4.2037673
+2024-04-03 00:00:00+00:00,1.7050476,0.0,60.526077,4.3689094
+2024-04-03 01:00:00+00:00,1.6522827,0.0,56.90583,4.3608236
+2024-04-03 02:00:00+00:00,1.3093262,0.0,56.813553,4.18974
+2024-04-03 03:00:00+00:00,0.9499817,0.0,57.41454,4.109295
+2024-04-03 04:00:00+00:00,0.54190063,0.0,59.492973,4.3117485
+2024-04-03 05:00:00+00:00,0.15316772,0.0,60.48242,4.721836
+2024-04-03 06:00:00+00:00,-0.09628296,0.0,59.400547,5.3111253
+2024-04-03 07:00:00+00:00,0.3149109,0.0,54.055756,5.903095
+2024-04-03 08:00:00+00:00,0.6430969,0.0,52.61793,5.654747
+2024-04-03 09:00:00+00:00,1.1213379,0.0,50.496555,5.3786454
+2024-04-03 10:00:00+00:00,1.6361389,0.0,47.964752,4.873324
+2024-04-03 11:00:00+00:00,2.162323,0.0,44.649746,4.5963607
+2024-04-03 12:00:00+00:00,2.5445862,0.0,42.254204,4.375965
+2024-04-03 13:00:00+00:00,3.4481812,0.0,40.06891,4.220579
+2024-04-03 14:00:00+00:00,3.558899,0.0,38.672173,4.021215
+2024-04-03 15:00:00+00:00,3.523285,0.0,38.70809,4.0252156
+2024-04-03 16:00:00+00:00,3.398529,0.0,38.878666,3.8381772
+2024-04-03 17:00:00+00:00,3.2085266,0.0,38.559555,3.7009602
+2024-04-03 18:00:00+00:00,2.8546448,0.0,41.390636,3.462725
+2024-04-03 19:00:00+00:00,2.547821,0.0,40.33598,3.4690297
+2024-04-03 20:00:00+00:00,2.1249695,0.0,40.532978,3.6734562
+2024-04-03 21:00:00+00:00,1.5714417,0.0,44.08991,3.673798
+2024-04-03 22:00:00+00:00,0.8282776,0.0,43.835358,4.626325
+2024-04-03 23:00:00+00:00,0.2414856,0.0,44.234432,4.437567
+2024-04-04 00:00:00+00:00,-0.19433594,0.0,45.361103,4.5543056
+2024-04-04 01:00:00+00:00,-0.14846802,0.0,43.791317,4.6759005
+2024-04-04 02:00:00+00:00,-0.45541382,0.0,48.963123,4.915005
+2024-04-04 03:00:00+00:00,-0.6418762,0.0,55.95747,4.9418387
+2024-04-04 04:00:00+00:00,-0.763855,0.0,62.987343,5.263907
+2024-04-04 05:00:00+00:00,-1.0271301,0.0,66.824615,5.8355794
+2024-04-04 06:00:00+00:00,-1.1898499,0.0,64.93237,5.571018
+2024-04-04 07:00:00+00:00,-0.93182373,0.0,52.85958,6.154656
+2024-04-04 08:00:00+00:00,-0.94366455,0.00024414062,48.941837,6.477585
+2024-04-04 09:00:00+00:00,-0.78045654,0.0,53.296333,6.524919
+2024-04-04 10:00:00+00:00,-1.7154846,0.075927734,73.71455,5.790144
+2024-04-04 11:00:00+00:00,-1.8465881,0.390625,84.256096,5.8309965
+2024-04-04 12:00:00+00:00,-1.4638367,0.29833984,84.936165,6.2191815
+2024-04-04 13:00:00+00:00,-1.2731018,0.6088867,87.75334,5.7889447
+2024-04-04 14:00:00+00:00,-0.92611694,0.3708496,87.695984,5.33497
+2024-04-04 15:00:00+00:00,-0.73703,0.5358887,89.1136,5.0357137
+2024-04-04 16:00:00+00:00,-0.481781,0.4086914,88.65815,4.9058576
+2024-04-04 17:00:00+00:00,-0.3171692,0.31982422,88.3632,5.119213
+2024-04-04 18:00:00+00:00,-0.17962646,0.26904297,88.43097,5.053756
+2024-04-04 19:00:00+00:00,-0.20822144,0.24401855,88.41863,5.314906
+2024-04-04 20:00:00+00:00,-0.2492981,0.43566895,89.43576,5.3088555
+2024-04-04 21:00:00+00:00,-0.27990723,0.6159668,89.64146,5.312844
+2024-04-04 22:00:00+00:00,-0.2762146,0.49194336,89.49389,5.3260045
+2024-04-04 23:00:00+00:00,-0.30422974,0.5961914,90.03201,5.418537
+2024-04-05 00:00:00+00:00,-0.3107605,0.66845703,90.56872,5.472034
+2024-04-05 01:00:00+00:00,-0.4303894,0.8078613,90.90954,5.495349
+2024-04-05 02:00:00+00:00,-0.4762268,0.7858887,90.25252,5.718911
+2024-04-05 03:00:00+00:00,-0.47473145,0.33007812,88.27098,5.8975906
+2024-04-05 04:00:00+00:00,-0.57855225,0.24707031,88.665665,5.798856
+2024-04-05 05:00:00+00:00,-0.6585388,0.26953125,87.56913,5.5685053
+2024-04-05 06:00:00+00:00,-0.54849243,0.034179688,84.831894,5.531725
+2024-04-05 07:00:00+00:00,-0.55081177,0.0014648438,82.96129,5.371696
+2024-04-05 08:00:00+00:00,-0.027862549,0.0,78.58284,4.9049187
+2024-04-05 09:00:00+00:00,0.5852661,0.0,73.77546,4.3927355
+2024-04-05 10:00:00+00:00,1.3722229,0.0,68.85293,3.9675484
+2024-04-05 11:00:00+00:00,2.1225586,0.00048828125,65.1597,3.4425032
+2024-04-05 12:00:00+00:00,2.8171692,0.0,61.798595,2.6294138
+2024-04-05 13:00:00+00:00,2.7470703,0.0,66.47504,2.8987494
+2024-04-05 14:00:00+00:00,2.862091,0.0,66.05948,2.1874442
+2024-04-05 15:00:00+00:00,3.1221008,0.0,65.42936,1.6219805
+2024-04-05 16:00:00+00:00,3.275055,0.0,68.837265,1.4676224
+2024-04-05 17:00:00+00:00,3.238922,0.0053710938,72.37298,1.1304685
+2024-04-05 18:00:00+00:00,2.559906,0.34814453,76.92364,1.4110612
+2024-04-05 19:00:00+00:00,1.02948,0.7689209,91.27027,2.934389
+2024-04-05 20:00:00+00:00,0.97406006,0.50183105,90.570015,3.8258064
+2024-04-05 21:00:00+00:00,1.0038147,0.24804688,90.21907,4.1996713
+2024-04-05 22:00:00+00:00,1.1123962,0.07543945,89.0317,4.1343365
+2024-04-05 23:00:00+00:00,1.0799866,0.05126953,88.99881,4.2748146
+2024-04-06 00:00:00+00:00,1.1556702,0.01953125,88.0825,4.157231
+2024-04-06 01:00:00+00:00,1.1750183,0.0032958984,87.81359,3.6410134
+2024-04-06 02:00:00+00:00,1.2488098,0.00012207031,86.22683,2.9527354
+2024-04-06 03:00:00+00:00,1.2239075,0.0,84.72487,2.5913115
+2024-04-06 04:00:00+00:00,1.2538757,0.0,83.65431,2.3197076
+2024-04-06 05:00:00+00:00,1.2096863,0.0,83.883446,2.3403366
+2024-04-06 06:00:00+00:00,1.2062073,0.0,83.76269,2.0455139
+2024-04-06 07:00:00+00:00,1.8739319,0.0,83.5234,1.9489526
+2024-04-06 08:00:00+00:00,2.2813416,0.0,81.635025,1.5965029
+2024-04-06 09:00:00+00:00,3.1434631,0.0,78.9221,1.0382011
+2024-04-06 10:00:00+00:00,3.6418457,0.0,77.66939,0.42189798
+2024-04-06 11:00:00+00:00,4.059662,0.0,79.04218,1.4116247
+2024-04-06 12:00:00+00:00,4.0786133,0.0,81.646736,2.3658469
+2024-04-06 13:00:00+00:00,3.4353333,0.001953125,87.83113,2.5699515
+2024-04-06 14:00:00+00:00,3.2339783,0.060058594,90.4856,1.908235
+2024-04-06 15:00:00+00:00,3.2747192,0.17407227,92.02422,1.7015759
+2024-04-06 16:00:00+00:00,3.1982727,0.20092773,94.53055,1.503611
+2024-04-06 17:00:00+00:00,3.1080017,0.07714844,95.3775,0.69432306
+2024-04-06 18:00:00+00:00,3.1045837,0.030761719,95.39244,0.8532745
+2024-04-06 19:00:00+00:00,3.3203125,0.12133789,96.30333,1.1892974
+2024-04-06 20:00:00+00:00,3.2562866,0.02734375,96.547745,1.6479532
+2024-04-06 21:00:00+00:00,3.9176636,0.018798828,94.64968,1.3854691
+2024-04-06 22:00:00+00:00,4.223419,0.20605469,94.7386,1.1205533
+2024-04-06 23:00:00+00:00,3.9304504,0.6230469,96.39352,0.9685663
+2024-04-07 00:00:00+00:00,3.7088928,0.93408203,97.19898,0.8801473
+2024-04-07 01:00:00+00:00,4.2461243,0.11352539,96.59502,0.7751249
+2024-04-07 02:00:00+00:00,4.3559875,0.0021972656,97.79733,0.17911695
+2024-04-07 03:00:00+00:00,4.27005,0.040527344,98.69011,1.0604032
+2024-04-07 04:00:00+00:00,4.7933044,0.022949219,99.17988,1.1160059
+2024-04-07 05:00:00+00:00,5.000183,0.0014648438,99.1999,2.099167
+2024-04-07 06:00:00+00:00,5.1367493,0.0024414062,98.148346,3.3830068
+2024-04-07 07:00:00+00:00,5.007141,0.22973633,97.35839,4.0115714
+2024-04-07 08:00:00+00:00,5.6963196,0.11694336,97.70899,4.630433
+2024-04-07 09:00:00+00:00,7.418915,0.14990234,94.24034,7.8342495
+2024-04-07 10:00:00+00:00,8.303009,0.0,87.47245,7.1422944
+2024-04-07 11:00:00+00:00,9.585297,0.0009765625,79.46367,6.462541
+2024-04-07 12:00:00+00:00,11.091217,0.0,67.476425,7.221569
+2024-04-07 13:00:00+00:00,11.053253,0.0,69.5264,7.632928
+2024-04-07 14:00:00+00:00,10.586945,0.0,73.485695,6.434438
+2024-04-07 15:00:00+00:00,9.848358,0.0,78.04891,6.341283
+2024-04-07 16:00:00+00:00,8.807739,0.0,83.452354,6.6762614
+2024-04-07 17:00:00+00:00,7.8778687,0.0,83.52147,7.1858873
+2024-04-07 18:00:00+00:00,7.0188293,0.0,87.15293,6.419716
+2024-04-07 19:00:00+00:00,6.440399,0.0,91.355896,5.1321473
+2024-04-07 20:00:00+00:00,6.057617,0.0,92.910416,4.2871323
+2024-04-07 21:00:00+00:00,5.4489746,0.0,95.36821,4.1434455
+2024-04-07 22:00:00+00:00,5.2469788,0.0,96.071526,4.256836
+2024-04-07 23:00:00+00:00,5.362732,0.0,96.09956,5.027804
+2024-04-08 00:00:00+00:00,5.583313,0.22949219,95.964096,4.978541
+2024-04-08 01:00:00+00:00,5.839386,0.390625,95.08951,5.3183937
+2024-04-08 02:00:00+00:00,6.115387,0.28271484,94.42503,5.176825
+2024-04-08 03:00:00+00:00,6.204376,0.24121094,94.33661,4.9748926
+2024-04-08 04:00:00+00:00,6.256775,0.56884766,94.15594,5.5880775
+2024-04-08 05:00:00+00:00,6.405731,0.26660156,93.640114,4.84716
+2024-04-08 06:00:00+00:00,6.4943237,0.061523438,93.178085,3.8223977
+2024-04-08 07:00:00+00:00,7.032501,0.0,91.998375,3.3824284
+2024-04-08 08:00:00+00:00,7.870514,0.0,87.621994,2.7761152
+2024-04-08 09:00:00+00:00,8.843231,0.0,84.39452,2.7468123
+2024-04-08 10:00:00+00:00,9.430084,0.0,81.24906,3.4527724
+2024-04-08 11:00:00+00:00,10.178864,0.0,74.085236,3.622774
+2024-04-08 12:00:00+00:00,10.066559,0.0,74.297745,3.8406792
+2024-04-08 13:00:00+00:00,10.1319275,0.0,80.45738,4.570635
+2024-04-08 14:00:00+00:00,9.349884,0.0,81.595894,3.85909
+2024-04-08 15:00:00+00:00,8.532288,0.0,86.46512,3.9998019
+2024-04-08 16:00:00+00:00,7.9585266,0.0,88.28384,3.907085
+2024-04-08 17:00:00+00:00,7.504669,0.0,90.1686,3.2543063
+2024-04-08 18:00:00+00:00,6.602417,0.0,92.893936,2.8786297
+2024-04-08 19:00:00+00:00,6.1622925,0.0,93.57551,2.2844539
+2024-04-08 20:00:00+00:00,5.9048157,0.0,94.7666,1.8553166
+2024-04-08 21:00:00+00:00,5.800873,0.0,95.247475,1.6507142
+2024-04-08 22:00:00+00:00,5.6727295,0.0,95.82989,1.6120921
+2024-04-08 23:00:00+00:00,5.642273,0.0,95.93378,1.219395
+2024-04-09 00:00:00+00:00,5.5124817,0.0,96.25256,1.0738498
+2024-04-09 01:00:00+00:00,5.445526,0.0,96.26792,1.1175203
+2024-04-09 02:00:00+00:00,5.396881,0.0,96.54453,0.70584744
+2024-04-09 03:00:00+00:00,5.3457947,0.0,96.836586,0.6387923
+2024-04-09 04:00:00+00:00,5.303009,0.0,97.38588,0.37250495
+2024-04-09 05:00:00+00:00,5.2242737,0.0,97.598564,0.61612296
+2024-04-09 06:00:00+00:00,5.4067993,0.0,97.53114,0.14009172
+2024-04-09 07:00:00+00:00,6.219513,0.0,96.18781,0.88511133
+2024-04-09 08:00:00+00:00,7.116974,0.0043945312,94.51706,1.0116982
+2024-04-09 09:00:00+00:00,8.435913,0.03857422,90.67555,0.6310161
+2024-04-09 10:00:00+00:00,9.7752075,0.030761719,85.9361,0.55993694
+2024-04-09 11:00:00+00:00,10.251984,0.0053710938,85.48323,1.113429
+2024-04-09 12:00:00+00:00,10.772369,0.01171875,84.58219,1.5046566
+2024-04-09 13:00:00+00:00,9.683533,0.5905762,86.083824,2.749221
+2024-04-09 14:00:00+00:00,9.157806,0.99072266,90.24375,2.4404583
+2024-04-09 15:00:00+00:00,9.13562,1.2834473,91.1824,1.6256381
+2024-04-09 16:00:00+00:00,9.777985,0.0009765625,86.83265,1.5393193
+2024-04-09 17:00:00+00:00,9.204803,1.3706055,90.29174,1.4547275
+2024-04-09 18:00:00+00:00,8.1716,0.96435547,95.25483,3.4133775
+2024-04-09 19:00:00+00:00,7.132904,0.9724121,99.47346,4.445505
+2024-04-09 20:00:00+00:00,6.6409607,1.796875,97.85006,5.582636
+2024-04-09 21:00:00+00:00,6.7190247,0.907959,93.626396,5.519356
+2024-04-09 22:00:00+00:00,6.520508,0.027832031,91.67238,5.6951194
+2024-04-09 23:00:00+00:00,6.447052,0.0,91.47698,4.4391713
+2024-04-10 00:00:00+00:00,5.8612366,0.0068359375,94.68083,3.9453177
+2024-04-10 01:00:00+00:00,6.013733,0.4609375,97.0,4.6546755
+2024-04-10 02:00:00+00:00,6.4308167,0.3334961,95.80237,6.1732044
+2024-04-10 03:00:00+00:00,6.4649963,0.25195312,95.788376,6.191921
+2024-04-10 04:00:00+00:00,6.1842957,0.41748047,95.445114,5.3211393
+2024-04-10 05:00:00+00:00,6.4044495,0.47851562,94.88219,5.9993978
+2024-04-10 06:00:00+00:00,6.6148376,0.07714844,89.49442,5.8514433
+2024-04-10 07:00:00+00:00,6.4869385,0.00024414062,91.99851,5.3572426
+2024-04-10 08:00:00+00:00,7.3173523,0.0,84.13718,3.9165316
+2024-04-10 09:00:00+00:00,9.34787,0.00024414062,72.87369,4.93468
+2024-04-10 10:00:00+00:00,10.213989,0.00048828125,65.46654,5.497218
+2024-04-10 11:00:00+00:00,11.356171,0.0,43.57698,8.563902
+2024-04-10 12:00:00+00:00,10.854279,0.0,39.590343,10.409598
+2024-04-10 13:00:00+00:00,10.665405,0.0,40.304874,9.326763
+2024-04-10 14:00:00+00:00,10.488556,0.0,39.949303,8.818977
+2024-04-10 15:00:00+00:00,10.167572,0.0,41.238125,8.520018
+2024-04-10 16:00:00+00:00,9.75296,0.0,42.607414,7.859218
+2024-04-10 17:00:00+00:00,8.974548,0.0,47.60522,6.480658
+2024-04-10 18:00:00+00:00,7.9048767,0.0,53.902416,5.596126
+2024-04-10 19:00:00+00:00,7.6784973,0.0,53.05217,5.312101
+2024-04-10 20:00:00+00:00,6.948883,0.0,56.583202,5.3164773
+2024-04-10 21:00:00+00:00,6.622162,0.0,61.776062,4.92085
+2024-04-10 22:00:00+00:00,6.5922546,0.0,62.416744,5.6402307
+2024-04-10 23:00:00+00:00,6.378296,0.12060547,67.040886,6.9327173
+2024-04-11 00:00:00+00:00,5.8386536,0.05517578,77.13679,6.3210664
+2024-04-11 01:00:00+00:00,6.0641174,0.0690918,78.3705,5.136735
+2024-04-11 02:00:00+00:00,5.8054504,0.0859375,87.686584,4.9802976
+2024-04-11 03:00:00+00:00,5.600464,0.25463867,92.61265,4.661902
+2024-04-11 04:00:00+00:00,5.480133,0.61083984,94.92068,5.4872603
+2024-04-11 05:00:00+00:00,5.7559814,0.6660156,93.31199,7.1845083
+2024-04-11 06:00:00+00:00,6.0278015,0.20019531,91.850494,7.1622467
+2024-04-11 07:00:00+00:00,6.0049133,0.0078125,94.831375,6.659822
+2024-04-11 08:00:00+00:00,6.3566895,0.0029296875,96.65289,4.17604
+2024-04-11 09:00:00+00:00,7.678192,0.0,90.4706,3.0641859
+2024-04-11 10:00:00+00:00,8.682892,0.016601562,83.597275,3.760225
+2024-04-11 11:00:00+00:00,9.776825,0.001953125,80.04365,3.6545496
+2024-04-11 12:00:00+00:00,11.436768,0.0,75.40241,2.8410451
+2024-04-11 13:00:00+00:00,14.610077,0.0,57.9077,4.404601
+2024-04-11 14:00:00+00:00,15.743347,0.0,47.571316,7.2237678
+2024-04-11 15:00:00+00:00,15.53537,0.0,48.721184,6.3266206
+2024-04-11 16:00:00+00:00,14.70108,0.0,52.82286,5.0771704
+2024-04-11 17:00:00+00:00,13.872314,0.0,56.60318,3.411041
+2024-04-11 18:00:00+00:00,12.889435,0.0,54.516476,3.157088
+2024-04-11 19:00:00+00:00,12.66626,0.0,53.22644,2.8113513
+2024-04-11 20:00:00+00:00,11.213654,0.0,58.33933,1.5595393
+2024-04-11 21:00:00+00:00,9.429657,0.0,67.98816,1.3483629
+2024-04-11 22:00:00+00:00,8.507965,0.0,75.03466,1.6798551
+2024-04-11 23:00:00+00:00,8.948822,0.0,69.699295,1.7260531
+2024-04-12 00:00:00+00:00,8.6684265,0.0,69.5155,1.2256329
+2024-04-12 01:00:00+00:00,9.022644,0.0,66.86246,1.1256924
+2024-04-12 02:00:00+00:00,8.332367,0.0,71.40455,1.1937727
+2024-04-12 03:00:00+00:00,7.4996033,0.0,77.34352,1.5535309
+2024-04-12 04:00:00+00:00,7.092987,0.0,77.84567,1.8500116
+2024-04-12 05:00:00+00:00,7.0105896,0.0,80.531624,1.2041076
+2024-04-12 06:00:00+00:00,7.582489,0.0,74.90967,1.3915985
+2024-04-12 07:00:00+00:00,8.150848,0.0,69.637405,2.059132
+2024-04-12 08:00:00+00:00,7.643341,0.16748047,84.172806,3.4630537
+2024-04-12 09:00:00+00:00,7.4018555,0.9555664,93.17435,2.8055942
+2024-04-12 10:00:00+00:00,7.4789124,1.3427734,95.91663,3.313735
+2024-04-12 11:00:00+00:00,7.6111755,0.20751953,94.726845,3.537191
+2024-04-12 12:00:00+00:00,8.015289,0.00048828125,93.873886,2.4872935
+2024-04-12 13:00:00+00:00,8.2464905,0.0,96.348175,3.0490415
+2024-04-12 14:00:00+00:00,8.671051,0.0,93.31881,3.1163816
+2024-04-12 15:00:00+00:00,9.060913,0.0,89.39255,2.5676875
+2024-04-12 16:00:00+00:00,8.939178,0.0,91.12088,2.431833
+2024-04-12 17:00:00+00:00,8.80191,0.0,91.12244,2.2349834
+2024-04-12 18:00:00+00:00,8.639252,0.0,90.048454,2.9563708
+2024-04-12 19:00:00+00:00,8.2908325,0.0,95.547066,2.945219
+2024-04-12 20:00:00+00:00,8.200775,0.0,91.333244,2.269738
+2024-04-12 21:00:00+00:00,8.272858,0.0,87.144875,1.7102059
+2024-04-12 22:00:00+00:00,8.403564,0.0,84.493126,1.4255095
+2024-04-12 23:00:00+00:00,8.228668,0.0,83.93809,1.3249124
+2024-04-13 00:00:00+00:00,8.183228,0.0,81.55364,1.6917689
+2024-04-13 01:00:00+00:00,7.9303284,0.0,82.71886,1.7568287
+2024-04-13 02:00:00+00:00,7.6835938,0.0,81.914764,2.2395387
+2024-04-13 03:00:00+00:00,7.501129,0.0,84.265,3.4686656
+2024-04-13 04:00:00+00:00,7.3115234,0.001953125,88.87397,3.7336433
+2024-04-13 05:00:00+00:00,7.287262,0.4765625,93.558975,3.3148549
+2024-04-13 06:00:00+00:00,7.623108,0.7578125,94.867355,4.016469
+2024-04-13 07:00:00+00:00,8.809967,0.06933594,91.013885,3.5732641
+2024-04-13 08:00:00+00:00,10.649689,0.0,81.54166,4.7078857
+2024-04-13 09:00:00+00:00,11.696869,0.0,73.4719,4.9244127
+2024-04-13 10:00:00+00:00,12.900665,0.0,60.227467,4.58824
+2024-04-13 11:00:00+00:00,13.723541,0.0,45.56167,4.4132366
+2024-04-13 12:00:00+00:00,13.754181,0.0,43.740788,5.4770613
+2024-04-13 13:00:00+00:00,14.039093,0.0,44.049236,4.4883537
+2024-04-13 14:00:00+00:00,14.028473,0.0,43.702377,4.5785937
+2024-04-13 15:00:00+00:00,13.257294,0.0,50.436928,4.5992956
+2024-04-13 16:00:00+00:00,12.599457,0.0,51.22513,4.756186
+2024-04-13 17:00:00+00:00,11.409393,0.0,57.440063,3.7886107
+2024-04-13 18:00:00+00:00,9.408997,0.0,80.28808,4.700229
+2024-04-13 19:00:00+00:00,8.55426,0.0,84.72178,4.366379
+2024-04-13 20:00:00+00:00,8.186371,0.0,85.90698,4.426564
+2024-04-13 21:00:00+00:00,7.6889343,0.0,86.140076,5.253615
+2024-04-13 22:00:00+00:00,7.113434,0.38183594,95.302826,5.1013618
+2024-04-13 23:00:00+00:00,7.4269104,0.13769531,97.33765,4.74804
+2024-04-14 00:00:00+00:00,7.5576477,0.5883789,95.368454,4.9457803
+2024-04-14 01:00:00+00:00,7.3591003,0.60498047,95.86224,5.8684635
+2024-04-14 02:00:00+00:00,7.8615417,0.3010254,85.62282,4.7688823
+2024-04-14 03:00:00+00:00,7.572174,0.0017089844,76.14962,6.028835
+2024-04-14 04:00:00+00:00,7.1187134,0.00048828125,71.48448,5.36974
+2024-04-14 05:00:00+00:00,7.387909,0.0,63.789837,5.688304
+2024-04-14 06:00:00+00:00,7.682617,0.0,60.97128,5.5075054
+2024-04-14 07:00:00+00:00,9.014008,0.0,53.73931,6.157242
+2024-04-14 08:00:00+00:00,10.132294,0.0,46.03289,8.1826935
+2024-04-14 09:00:00+00:00,10.855621,0.0,39.463215,8.544571
+2024-04-14 10:00:00+00:00,11.310822,0.0,35.07463,9.34015
+2024-04-14 11:00:00+00:00,11.357574,0.0,35.558823,9.741136
+2024-04-14 12:00:00+00:00,11.369476,0.0,35.81189,9.452008
+2024-04-14 13:00:00+00:00,11.219391,0.0,36.484642,8.701925
+2024-04-14 14:00:00+00:00,11.209961,0.0,36.351498,7.944374
+2024-04-14 15:00:00+00:00,11.018524,0.0,35.50636,7.4915776
+2024-04-14 16:00:00+00:00,10.511078,0.0,36.538483,6.93826
+2024-04-14 17:00:00+00:00,9.80838,0.0,39.602734,6.0665803
+2024-04-14 18:00:00+00:00,8.780792,0.0,45.968067,4.597508
+2024-04-14 19:00:00+00:00,8.154205,0.0,45.81874,3.8005126
+2024-04-14 20:00:00+00:00,7.5134583,0.0,49.301525,2.8278544
+2024-04-14 21:00:00+00:00,6.9224854,0.0,55.689663,1.775866
+2024-04-14 22:00:00+00:00,6.3174133,0.0,58.251587,1.2482972
+2024-04-14 23:00:00+00:00,5.316742,0.0,70.45517,1.2226496
+2024-04-15 00:00:00+00:00,4.4136047,0.0,81.72863,1.2536682
+2024-04-15 01:00:00+00:00,3.3535461,0.0,91.236,1.2180989
+2024-04-15 02:00:00+00:00,2.4958801,0.0,98.08248,1.2497408
+2024-04-15 03:00:00+00:00,2.0455017,0.0,99.43336,1.0991486
+2024-04-15 04:00:00+00:00,1.8372192,0.0,98.24565,0.9842058
+2024-04-15 05:00:00+00:00,1.9533997,0.0,97.02891,0.9996671
+2024-04-15 06:00:00+00:00,3.744934,0.0,78.74961,0.86757416
+2024-04-15 07:00:00+00:00,4.7121277,0.0,61.969395,1.8758883
+2024-04-15 08:00:00+00:00,5.2005615,0.0,59.954258,1.6872965
+2024-04-15 09:00:00+00:00,6.0125427,0.0,58.148182,1.8162686
+2024-04-15 10:00:00+00:00,6.7383423,0.0,55.240467,2.0333214
+2024-04-15 11:00:00+00:00,7.2642517,0.0,55.511852,1.7377107
+2024-04-15 12:00:00+00:00,7.62204,0.0,55.90734,1.3174257
+2024-04-15 13:00:00+00:00,8.311676,0.0,50.93004,1.55097
+2024-04-15 14:00:00+00:00,8.514557,0.0,48.942,1.450085
+2024-04-15 15:00:00+00:00,8.600372,0.0,52.050358,1.6369854
+2024-04-15 16:00:00+00:00,8.039215,0.0,65.00151,2.3868659
+2024-04-15 17:00:00+00:00,7.0479126,0.0,71.66145,2.681977
+2024-04-15 18:00:00+00:00,6.405121,0.0,75.82724,1.5222374
+2024-04-15 19:00:00+00:00,6.042877,0.0,74.327,0.7372167
+2024-04-15 20:00:00+00:00,5.7478333,0.0,76.27756,0.907608
+2024-04-15 21:00:00+00:00,4.6719666,0.0,82.888565,1.1218538
+2024-04-15 22:00:00+00:00,3.632721,0.0,91.688484,1.3418802
+2024-04-15 23:00:00+00:00,3.5167542,0.0,87.51173,1.7300353
+2024-04-16 00:00:00+00:00,3.7937927,0.0,78.48399,2.0231073
+2024-04-16 01:00:00+00:00,3.5827637,0.0,76.23539,2.592933
+2024-04-16 02:00:00+00:00,3.9397888,0.0,69.49039,2.7157562
+2024-04-16 03:00:00+00:00,4.3667297,0.0,60.342274,2.8788426
+2024-04-16 04:00:00+00:00,4.383301,0.0,56.3757,3.3286338
+2024-04-16 05:00:00+00:00,4.425934,0.0,54.671463,3.472846
+2024-04-16 06:00:00+00:00,4.9854736,0.0,52.07446,4.024436
+2024-04-16 07:00:00+00:00,5.3783264,0.0,50.010216,4.3114324
+2024-04-16 08:00:00+00:00,6.2727966,0.0,46.706924,4.383973
+2024-04-16 09:00:00+00:00,7.2258606,0.0,42.62757,4.0250287
+2024-04-16 10:00:00+00:00,8.024841,0.0,40.442867,3.4474206
+2024-04-16 11:00:00+00:00,8.603424,0.0,37.6911,3.2729356
+2024-04-16 12:00:00+00:00,9.006256,0.0,35.091652,3.3670917
+2024-04-16 13:00:00+00:00,9.939209,0.0,34.87717,2.3868937
+2024-04-16 14:00:00+00:00,10.279755,0.0,34.018215,1.9851272
+2024-04-16 15:00:00+00:00,10.424896,0.0,34.48286,1.741848
+2024-04-16 16:00:00+00:00,10.297791,0.0,37.608284,1.5478538
+2024-04-16 17:00:00+00:00,9.724518,0.0,41.555443,1.5112023
+2024-04-16 18:00:00+00:00,8.837433,0.0,47.154694,0.9557418
+2024-04-16 19:00:00+00:00,8.090088,0.0,50.441116,0.881064
+2024-04-16 20:00:00+00:00,7.133148,0.0,58.639423,0.9867746
+2024-04-16 21:00:00+00:00,6.8372498,0.0,60.1319,0.61458623
+2024-04-16 22:00:00+00:00,6.584564,0.0,59.880665,0.23636632
+2024-04-16 23:00:00+00:00,6.293396,0.0,62.505054,0.4905073
+2024-04-17 00:00:00+00:00,5.907318,0.0,68.65655,0.5485432
+2024-04-17 01:00:00+00:00,4.5300293,0.0,69.411766,0.4820352
+2024-04-17 02:00:00+00:00,4.1789856,0.0,71.09936,0.14866562
+2024-04-17 03:00:00+00:00,3.9931335,0.0,74.27267,0.3541879
+2024-04-17 04:00:00+00:00,3.6181946,0.0,77.23534,0.5994029
+2024-04-17 05:00:00+00:00,3.3575745,0.0,76.331795,0.5095528
+2024-04-17 06:00:00+00:00,3.799408,0.0,74.89869,0.36096787
+2024-04-17 07:00:00+00:00,5.063141,0.0,69.5518,0.59510976
+2024-04-17 08:00:00+00:00,6.000458,0.0,62.738403,0.6508284
+2024-04-17 09:00:00+00:00,7.006256,0.0,58.675606,1.01998
+2024-04-17 10:00:00+00:00,8.151215,0.0,52.080887,1.5475453
+2024-04-17 11:00:00+00:00,8.976227,0.0,44.03083,2.2114937
+2024-04-17 12:00:00+00:00,9.302277,0.0,39.753822,3.5267403
+2024-04-17 13:00:00+00:00,8.510345,0.00024414062,42.464474,4.84201
+2024-04-17 14:00:00+00:00,7.5698853,0.009521484,51.027622,5.4526696
+2024-04-17 15:00:00+00:00,7.4406433,0.0063476562,46.608578,4.7019596
+2024-04-17 16:00:00+00:00,7.4307556,0.013183594,47.644913,2.4173992
+2024-04-17 17:00:00+00:00,7.538025,0.12207031,45.99085,2.7818277
+2024-04-17 18:00:00+00:00,6.998993,0.030273438,48.375046,3.3628855
+2024-04-17 19:00:00+00:00,5.926544,0.0,54.992638,2.6485598
+2024-04-17 20:00:00+00:00,5.020233,0.0,54.58171,2.7746475
+2024-04-17 21:00:00+00:00,4.1767273,0.0,61.59306,3.0931168
+2024-04-17 22:00:00+00:00,3.967163,0.0,57.35077,3.6333122
+2024-04-17 23:00:00+00:00,3.7339172,0.0,55.250343,3.9055321
+2024-04-18 00:00:00+00:00,3.460785,0.0,55.180534,4.2902446
+2024-04-18 01:00:00+00:00,3.2355042,0.0,55.083496,4.07851
+2024-04-18 02:00:00+00:00,3.0948792,0.0,55.3721,3.84697
+2024-04-18 03:00:00+00:00,2.89563,0.0,56.17879,3.5009282
+2024-04-18 04:00:00+00:00,2.58786,0.0,58.36386,2.9778469
+2024-04-18 05:00:00+00:00,2.6367493,0.0,59.88101,2.5220082
+2024-04-18 06:00:00+00:00,3.4404602,0.0,55.35571,2.4207675
+2024-04-18 07:00:00+00:00,4.119995,0.0,52.16807,2.756306
+2024-04-18 08:00:00+00:00,4.701996,0.0,51.757797,2.0650237
+2024-04-18 09:00:00+00:00,5.163849,0.0,53.11599,1.1829072
+2024-04-18 10:00:00+00:00,5.5922546,0.0,52.937584,0.5733803
+2024-04-18 11:00:00+00:00,5.8121033,0.0,51.759533,1.2115383
+2024-04-18 12:00:00+00:00,6.1473694,0.0,47.60745,1.149158
+2024-04-18 13:00:00+00:00,6.07016,0.00024414062,49.39522,1.3229871
+2024-04-18 14:00:00+00:00,5.9598083,0.0,51.741344,1.8392844
+2024-04-18 15:00:00+00:00,5.651703,0.0,58.15219,2.3261092
+2024-04-18 16:00:00+00:00,5.5317383,0.0,66.02381,2.8503861
+2024-04-18 17:00:00+00:00,5.681427,0.00048828125,62.16824,3.9141223
+2024-04-18 18:00:00+00:00,5.1797485,0.0,65.63876,4.687809
+2024-04-18 19:00:00+00:00,4.914154,0.008300781,64.75839,3.9605267
+2024-04-18 20:00:00+00:00,4.5779724,0.01171875,69.09152,3.1898162
+2024-04-18 21:00:00+00:00,4.3075256,0.0,71.2205,2.4322326
+2024-04-18 22:00:00+00:00,3.9320984,0.0068359375,75.18086,2.3025494
+2024-04-18 23:00:00+00:00,3.4595947,0.01171875,79.01439,2.5701532
+2024-04-19 00:00:00+00:00,2.9936829,0.0,81.04295,2.6419718
+2024-04-19 01:00:00+00:00,2.3411255,0.0,70.66642,2.444207
+2024-04-19 02:00:00+00:00,2.0074768,0.0,70.396385,2.264735
+2024-04-19 03:00:00+00:00,1.7460022,0.0,72.90628,2.2694974
+2024-04-19 04:00:00+00:00,1.5421448,0.0,76.07785,2.4933712
+2024-04-19 05:00:00+00:00,1.4578857,0.0,78.07483,2.8478475
+2024-04-19 06:00:00+00:00,1.5808411,0.0,78.94316,2.9633703
+2024-04-19 07:00:00+00:00,2.2428894,0.0015869141,75.55045,3.2801414
+2024-04-19 08:00:00+00:00,3.322052,0.00012207031,66.845634,3.655713
+2024-04-19 09:00:00+00:00,4.4273987,0.0,57.25493,2.8970692
+2024-04-19 10:00:00+00:00,5.0886536,0.0063476562,50.83268,3.4570482
+2024-04-19 11:00:00+00:00,5.4880676,0.021972656,49.527313,2.9043322
+2024-04-19 12:00:00+00:00,5.635895,0.021972656,48.554024,2.8652468
+2024-04-19 13:00:00+00:00,4.7360535,0.1105957,64.46222,2.6683185
+2024-04-19 14:00:00+00:00,4.8296814,0.11010742,63.08271,1.9867463
+2024-04-19 15:00:00+00:00,4.8850403,0.09448242,66.08497,1.580591
+2024-04-19 16:00:00+00:00,4.934906,0.018798828,66.717896,1.3653902
+2024-04-19 17:00:00+00:00,5.0014343,0.0029296875,65.10056,1.2648648
+2024-04-19 18:00:00+00:00,4.8631897,0.0,65.41738,1.2729033
+2024-04-19 19:00:00+00:00,4.4740906,0.0,64.07893,0.5312906
+2024-04-19 20:00:00+00:00,4.297943,0.0,63.447594,0.5488996
+2024-04-19 21:00:00+00:00,4.1964417,0.0,65.32497,1.3224884
+2024-04-19 22:00:00+00:00,4.023468,0.0,69.06662,1.2497987
+2024-04-19 23:00:00+00:00,3.7143555,0.0,71.217155,1.1675766
+2024-04-20 00:00:00+00:00,3.3692932,0.0,72.923935,1.123259
+2024-04-20 01:00:00+00:00,2.891449,0.0,77.07292,1.1998323
+2024-04-20 02:00:00+00:00,2.452301,0.0,82.41941,1.174257
+2024-04-20 03:00:00+00:00,2.0661926,0.0,86.1019,1.1427456
+2024-04-20 04:00:00+00:00,1.7898865,0.0,87.64627,1.1902772
+2024-04-20 05:00:00+00:00,1.8794861,0.0,86.79109,1.1580029
+2024-04-20 06:00:00+00:00,2.7577515,0.0,78.67651,1.1228839
+2024-04-20 07:00:00+00:00,3.703827,0.0,69.42961,1.2918022
+2024-04-20 08:00:00+00:00,4.925995,0.0,63.69572,1.67123
+2024-04-20 09:00:00+00:00,6.256195,0.009765625,57.98156,3.1262333
+2024-04-20 10:00:00+00:00,6.827118,0.015625,52.123795,5.021446
+2024-04-20 11:00:00+00:00,7.033539,0.015625,54.32853,5.055565
+2024-04-20 12:00:00+00:00,7.958893,0.018554688,44.74305,5.687312
+2024-04-20 13:00:00+00:00,8.393951,0.017333984,42.165142,5.3817077
+2024-04-20 14:00:00+00:00,8.578583,0.011474609,41.552223,5.3040137
+2024-04-20 15:00:00+00:00,9.056946,0.0034179688,38.995533,4.6912947
+2024-04-20 16:00:00+00:00,9.332764,0.0,35.30137,4.6648016
+2024-04-20 17:00:00+00:00,9.138763,0.0,35.320248,4.3427486
+2024-04-20 18:00:00+00:00,8.243469,0.0,43.229992,4.269438
+2024-04-20 19:00:00+00:00,7.316986,0.0,45.130405,4.387654
+2024-04-20 20:00:00+00:00,6.619293,0.0,45.65122,5.0505805
+2024-04-20 21:00:00+00:00,5.8664856,0.0,46.031357,5.3282022
+2024-04-20 22:00:00+00:00,5.3388977,0.0,46.96364,4.686637
+2024-04-20 23:00:00+00:00,4.6925964,0.0,54.778156,4.3649163
+2024-04-21 00:00:00+00:00,4.1888733,0.0,60.331223,4.3623347
+2024-04-21 01:00:00+00:00,3.8333435,0.0,64.14085,4.5238247
+2024-04-21 02:00:00+00:00,3.6012878,0.0,63.107906,4.256157
+2024-04-21 03:00:00+00:00,3.403839,0.0,62.945267,4.1988597
+2024-04-21 04:00:00+00:00,3.3125305,0.0,62.40034,3.9446445
+2024-04-21 05:00:00+00:00,3.4474182,0.0,62.292053,3.8043828
+2024-04-21 06:00:00+00:00,4.173004,0.0,58.115013,4.5042467
+2024-04-21 07:00:00+00:00,4.9967346,0.0,53.03405,5.7806773
+2024-04-21 08:00:00+00:00,5.8616943,0.0,46.762444,5.4034033
+2024-04-21 09:00:00+00:00,6.614746,0.0,36.300045,5.162158
+2024-04-21 10:00:00+00:00,7.2513733,0.0,31.443113,4.8601317
+2024-04-21 11:00:00+00:00,7.8645325,0.0,30.483639,4.633645
+2024-04-21 12:00:00+00:00,8.421722,0.0,27.942327,4.6259484
+2024-04-21 13:00:00+00:00,8.674438,0.0,28.535294,4.146007
+2024-04-21 14:00:00+00:00,8.990784,0.0,28.79895,3.99873
+2024-04-21 15:00:00+00:00,9.124756,0.0,28.395012,4.006472
+2024-04-21 16:00:00+00:00,8.986053,0.0,28.647171,3.936831
+2024-04-21 17:00:00+00:00,8.573395,0.0,29.681648,3.4472418
+2024-04-21 18:00:00+00:00,7.77594,0.0,32.626854,2.5631654
+2024-04-21 19:00:00+00:00,7.3971863,0.0,31.433374,2.1327627
+2024-04-21 20:00:00+00:00,6.579468,0.0,29.696518,1.9876478
+2024-04-21 21:00:00+00:00,5.4721985,0.0,33.986256,1.9422133
+2024-04-21 22:00:00+00:00,4.1178894,0.0,46.42848,1.704053
+2024-04-21 23:00:00+00:00,4.034088,0.0,47.840355,1.3909426
+2024-04-22 00:00:00+00:00,3.6875,0.0,55.482407,1.5648953
+2024-04-22 01:00:00+00:00,3.451538,0.0,57.85323,3.3650334
+2024-04-22 02:00:00+00:00,2.5091248,0.0,61.83494,3.6960328
+2024-04-22 03:00:00+00:00,1.9317322,0.0,65.57012,3.1062648
+2024-04-22 04:00:00+00:00,1.4671326,0.0,67.72422,2.9404693
+2024-04-22 05:00:00+00:00,1.2210388,0.0,69.06271,3.1633508
+2024-04-22 06:00:00+00:00,1.1986084,0.0009765625,62.57135,2.8215375
+2024-04-22 07:00:00+00:00,1.7657776,0.0,61.894093,2.027725
+2024-04-22 08:00:00+00:00,2.3908691,0.0,60.00328,1.1456915
+2024-04-22 09:00:00+00:00,2.981598,0.0,55.74398,0.058925465
+2024-04-22 10:00:00+00:00,3.5803833,0.0,55.871094,0.37757307
+2024-04-22 11:00:00+00:00,4.19635,0.0,53.886795,0.85348076
+2024-04-22 12:00:00+00:00,4.8327026,0.0,53.530907,1.0771786
+2024-04-22 13:00:00+00:00,5.337311,0.0,52.14206,1.0279682
+2024-04-22 14:00:00+00:00,5.7859497,0.0,53.85143,1.3910745
+2024-04-22 15:00:00+00:00,6.0417175,0.0,57.808556,1.9697473
+2024-04-22 16:00:00+00:00,5.7957764,0.0,55.25104,2.5905576
+2024-04-22 17:00:00+00:00,6.2478333,0.0,61.868683,2.1314526
+2024-04-22 18:00:00+00:00,6.415863,0.0,65.05884,3.6959677
+2024-04-22 19:00:00+00:00,5.229431,0.0,67.24971,3.8497937
+2024-04-22 20:00:00+00:00,4.482239,0.0,74.725975,2.7157178
+2024-04-22 21:00:00+00:00,4.252777,0.0,76.2895,1.6846927
+2024-04-22 22:00:00+00:00,4.0785217,0.0,76.80307,1.0264502
+2024-04-22 23:00:00+00:00,3.9882507,0.0,77.332085,0.7845331
+2024-04-23 00:00:00+00:00,3.9248657,0.0,78.749,0.3329698
+2024-04-23 01:00:00+00:00,3.7709045,0.0,77.64139,0.0724041
+2024-04-23 02:00:00+00:00,3.6603088,0.0,77.9659,0.467265
+2024-04-23 03:00:00+00:00,3.3385315,0.0,81.05927,1.0064175
+2024-04-23 04:00:00+00:00,2.8139343,0.0,85.78994,1.5297178
+2024-04-23 05:00:00+00:00,3.1366577,0.0,82.46664,1.3897074
+2024-04-23 06:00:00+00:00,4.022705,0.0,75.317276,1.6076818
+2024-04-23 07:00:00+00:00,4.9174805,0.02331543,65.25679,3.0883465
+2024-04-23 08:00:00+00:00,5.610565,0.1439209,64.29889,2.8254883
+2024-04-23 09:00:00+00:00,6.489044,0.03930664,53.615284,4.19208
+2024-04-23 10:00:00+00:00,7.447571,0.0014648438,47.230915,4.719801
+2024-04-23 11:00:00+00:00,8.116516,0.00048828125,42.111946,4.138612
+2024-04-23 12:00:00+00:00,8.5607605,0.00048828125,39.92949,4.189559
+2024-04-23 13:00:00+00:00,8.715454,0.0,42.43622,3.600749
+2024-04-23 14:00:00+00:00,8.91864,0.0,41.67982,3.9156187
+2024-04-23 15:00:00+00:00,8.90329,0.0,42.03324,3.6894202
+2024-04-23 16:00:00+00:00,8.874084,0.0,41.51831,3.7202773
+2024-04-23 17:00:00+00:00,8.439514,0.001953125,44.156746,3.8134673
+2024-04-23 18:00:00+00:00,7.8182983,0.0,51.05476,2.5361798
+2024-04-23 19:00:00+00:00,7.0525208,0.0,52.413044,2.6131065
+2024-04-23 20:00:00+00:00,6.3556824,0.0,57.100655,2.8832939
+2024-04-23 21:00:00+00:00,5.899475,0.001953125,61.217922,3.306443
+2024-04-23 22:00:00+00:00,5.5233154,0.0,63.92855,3.5543165
+2024-04-23 23:00:00+00:00,5.2727966,0.00048828125,65.17146,3.6047792
+2024-04-24 00:00:00+00:00,5.0450745,0.0014648438,66.86217,3.7060091
+2024-04-24 01:00:00+00:00,5.105255,0.001953125,65.548004,3.4136674
+2024-04-24 02:00:00+00:00,4.9095764,0.0,67.38779,3.2556713
+2024-04-24 03:00:00+00:00,4.7877502,0.0,67.6452,3.132599
+2024-04-24 04:00:00+00:00,4.6955566,0.0,67.43901,2.8673396
+2024-04-24 05:00:00+00:00,4.7685547,0.0,65.74544,2.6972296
+2024-04-24 06:00:00+00:00,5.3963623,0.0,62.361176,2.6902933
+2024-04-24 07:00:00+00:00,6.5021973,0.0,54.93966,3.8971038
+2024-04-24 08:00:00+00:00,7.076416,0.0107421875,52.745422,3.666515
+2024-04-24 09:00:00+00:00,7.1688232,0.018554688,53.10156,3.463121
+2024-04-24 10:00:00+00:00,7.5448303,0.0034179688,50.40504,2.9862306
+2024-04-24 11:00:00+00:00,7.9112244,0.022949219,46.854546,2.7350678
+2024-04-24 12:00:00+00:00,8.003998,0.0146484375,48.087677,2.3361795
+2024-04-24 13:00:00+00:00,7.674103,0.10083008,49.82841,1.1917559
+2024-04-24 14:00:00+00:00,7.5698547,0.05053711,53.02451,1.6088953
+2024-04-24 15:00:00+00:00,7.2897644,0.020996094,54.22053,1.2558067
+2024-04-24 16:00:00+00:00,7.097595,0.018554688,56.021725,1.6030777
+2024-04-24 17:00:00+00:00,6.522278,0.103027344,64.68389,1.8161031
+2024-04-24 18:00:00+00:00,5.9430847,0.17675781,70.78577,1.5570128
+2024-04-24 19:00:00+00:00,5.294739,0.20654297,76.06149,1.3432149
+2024-04-24 20:00:00+00:00,4.9407654,0.2524414,78.3583,1.1508412
+2024-04-24 21:00:00+00:00,4.757843,0.12988281,80.36191,0.9959301
+2024-04-24 22:00:00+00:00,4.478302,0.24804688,82.43866,1.0005065
+2024-04-24 23:00:00+00:00,4.220459,0.2919922,83.66206,1.0676312
+2024-04-25 00:00:00+00:00,4.0155334,0.36132812,85.345,1.055581
+2024-04-25 01:00:00+00:00,3.8833618,0.044921875,86.702545,1.3328669
+2024-04-25 02:00:00+00:00,3.7516174,0.0,87.04777,1.3652724
+2024-04-25 03:00:00+00:00,3.638092,0.0009765625,87.63843,1.2827599
+2024-04-25 04:00:00+00:00,3.57724,0.00048828125,88.4414,1.4711014
+2024-04-25 05:00:00+00:00,3.6985474,0.0,87.75682,1.4964194
+2024-04-25 06:00:00+00:00,4.0806885,0.01171875,85.45061,1.5544188
+2024-04-25 07:00:00+00:00,4.5763245,0.19152832,81.86789,1.5397855
+2024-04-25 08:00:00+00:00,5.0164185,0.22595215,78.91693,1.4972743
+2024-04-25 09:00:00+00:00,5.4038696,0.13085938,75.940704,1.8905265
+2024-04-25 10:00:00+00:00,5.840332,0.072753906,75.43754,1.9136623
+2024-04-25 11:00:00+00:00,6.2592163,0.016601562,72.93568,1.5906721
+2024-04-25 12:00:00+00:00,6.7790833,0.0048828125,69.16571,1.5676686
+2024-04-25 13:00:00+00:00,6.665924,0.00390625,69.35728,1.3512064
+2024-04-25 14:00:00+00:00,6.939575,0.0026855469,68.67783,1.0754505
+2024-04-25 15:00:00+00:00,7.094055,0.00024414062,66.7271,0.931481
+2024-04-25 16:00:00+00:00,7.2217407,0.0,62.367226,0.7161129
+2024-04-25 17:00:00+00:00,7.1894836,0.0,58.885742,0.7809062
+2024-04-25 18:00:00+00:00,6.9342957,0.0,61.15625,0.99892926
+2024-04-25 19:00:00+00:00,6.1884766,0.0010986328,66.51751,0.741434
+2024-04-25 20:00:00+00:00,5.919647,0.00012207031,65.37209,0.33953825
+2024-04-25 21:00:00+00:00,5.6572876,0.0,69.43296,0.6232397
+2024-04-25 22:00:00+00:00,5.5875854,0.0,73.00225,1.168253
+2024-04-25 23:00:00+00:00,5.137451,0.00024414062,78.32049,1.372327
+2024-04-26 00:00:00+00:00,4.0327454,0.0,90.69915,1.5724255
+2024-04-26 01:00:00+00:00,3.7532654,0.0,89.46295,1.845319
+2024-04-26 02:00:00+00:00,3.8153381,0.0,85.49382,1.8649486
+2024-04-26 03:00:00+00:00,3.85083,0.0,84.96791,1.7525809
+2024-04-26 04:00:00+00:00,4.1012573,0.0,71.34982,2.1781862
+2024-04-26 05:00:00+00:00,3.874939,0.0,72.27835,3.024815
+2024-04-26 06:00:00+00:00,3.7356567,0.0,77.774345,2.8179574
+2024-04-26 07:00:00+00:00,4.080139,0.010864258,78.03975,2.5943274
+2024-04-26 08:00:00+00:00,4.761841,0.015991211,76.48612,2.6803923
+2024-04-26 09:00:00+00:00,5.9951477,0.00390625,69.07456,2.4863791
+2024-04-26 10:00:00+00:00,6.8957214,0.017089844,62.327488,2.192056
+2024-04-26 11:00:00+00:00,7.480835,0.032226562,58.267715,2.079182
+2024-04-26 12:00:00+00:00,8.114288,0.0546875,53.02577,1.8342217
+2024-04-26 13:00:00+00:00,8.214203,0.009521484,55.45044,2.7652009
+2024-04-26 14:00:00+00:00,8.320465,0.01928711,53.780117,2.5167072
+2024-04-26 15:00:00+00:00,8.326202,0.037597656,53.743797,2.2382083
+2024-04-26 16:00:00+00:00,8.21225,0.026367188,56.657974,1.9499626
+2024-04-26 17:00:00+00:00,8.062103,0.05029297,59.563503,1.7025912
+2024-04-26 18:00:00+00:00,7.758362,0.001953125,66.21208,0.95509946
+2024-04-26 19:00:00+00:00,7.474701,0.0013427734,66.74439,1.0658656
+2024-04-26 20:00:00+00:00,7.0778503,0.014526367,66.32125,1.5928856
+2024-04-26 21:00:00+00:00,6.508423,0.0,63.612644,1.9108456
+2024-04-26 22:00:00+00:00,6.0295715,0.0,68.77411,1.0703753
+2024-04-26 23:00:00+00:00,5.728821,0.0,68.5984,0.79353386
+2024-04-27 00:00:00+00:00,5.498169,0.0,69.75376,0.9672943
+2024-04-27 01:00:00+00:00,4.60907,0.0,71.74274,1.2034513
+2024-04-27 02:00:00+00:00,4.2135315,0.0,73.722145,1.2711867
+2024-04-27 03:00:00+00:00,3.5463257,0.0,81.53453,1.4567157
+2024-04-27 04:00:00+00:00,2.6212463,0.0,94.59507,1.5744503
+2024-04-27 05:00:00+00:00,3.2168274,0.0,91.79008,1.2820845
+2024-04-27 06:00:00+00:00,4.5858765,0.0,76.98324,0.8871858
+2024-04-27 07:00:00+00:00,5.246765,0.0,71.909966,1.3464378
+2024-04-27 08:00:00+00:00,6.204468,0.0,68.40859,1.2751538
+2024-04-27 09:00:00+00:00,7.1713867,0.0,63.49981,1.1226234
+2024-04-27 10:00:00+00:00,8.049866,0.0,58.432182,0.9557798
+2024-04-27 11:00:00+00:00,8.814026,0.0009765625,52.72052,0.6009647
+2024-04-27 12:00:00+00:00,9.385071,0.0,47.02578,0.37362933
+2024-04-27 13:00:00+00:00,9.584106,0.0,45.539234,1.2137225
+2024-04-27 14:00:00+00:00,9.358978,0.0024414062,51.091076,2.042723
+2024-04-27 15:00:00+00:00,9.055542,0.0009765625,54.495182,1.7946904
+2024-04-27 16:00:00+00:00,8.869598,0.00048828125,61.59251,2.817521
+2024-04-27 17:00:00+00:00,8.338715,0.0,62.45854,3.2610574
+2024-04-27 18:00:00+00:00,7.8679504,0.0,67.640015,2.4683347
+2024-04-27 19:00:00+00:00,7.486267,0.0,69.76106,1.3722646
+2024-04-27 20:00:00+00:00,7.089081,0.0,71.034584,0.4359463
+2024-04-27 21:00:00+00:00,6.602051,0.0,77.4318,0.70096564
+2024-04-27 22:00:00+00:00,6.383026,0.0,80.26441,0.77624786
+2024-04-27 23:00:00+00:00,6.404602,0.0,73.613815,1.1063558
+2024-04-28 00:00:00+00:00,6.1905823,0.09277344,69.10425,2.0225573
+2024-04-28 01:00:00+00:00,5.512909,0.0012207031,70.91264,2.5578551
+2024-04-28 02:00:00+00:00,5.294586,0.0,73.08551,2.5374234
+2024-04-28 03:00:00+00:00,5.228058,0.24951172,74.66181,3.037383
+2024-04-28 04:00:00+00:00,5.049164,0.5307617,76.78243,3.603787
+2024-04-28 05:00:00+00:00,4.850128,0.9091797,79.34023,3.82112
+2024-04-28 06:00:00+00:00,4.8979797,0.8701172,80.96774,4.394413
+2024-04-28 07:00:00+00:00,4.99881,0.3959961,84.81943,4.374855
+2024-04-28 08:00:00+00:00,5.2549133,0.104003906,83.90416,4.296364
+2024-04-28 09:00:00+00:00,5.676056,0.24853516,82.199486,4.265175
+2024-04-28 10:00:00+00:00,6.0069885,1.3989258,83.19047,4.54656
+2024-04-28 11:00:00+00:00,6.397644,0.48828125,82.78073,4.522713
+2024-04-28 12:00:00+00:00,6.64682,0.44433594,82.665184,4.5334573
+2024-04-28 13:00:00+00:00,6.575989,0.1809082,86.03838,4.6149035
+2024-04-28 14:00:00+00:00,7.068573,0.018798828,84.10545,4.688749
+2024-04-28 15:00:00+00:00,7.621643,0.00048828125,83.108986,4.530635
+2024-04-28 16:00:00+00:00,7.9348145,0.0,82.61302,4.7353916
+2024-04-28 17:00:00+00:00,8.003021,0.0,83.357635,4.4966016
+2024-04-28 18:00:00+00:00,7.9744873,0.0,83.777145,4.1708117
+2024-04-28 19:00:00+00:00,7.5871277,0.0009765625,86.43382,4.579137
+2024-04-28 20:00:00+00:00,7.4153748,0.16210938,86.72995,4.2614713
+2024-04-28 21:00:00+00:00,7.1901855,0.12011719,86.140205,4.5612197
+2024-04-28 22:00:00+00:00,7.061157,0.023925781,87.288956,4.013466
+2024-04-28 23:00:00+00:00,6.990753,0.52197266,88.31276,3.6469
+2024-04-29 00:00:00+00:00,7.0672607,0.8935547,88.96365,3.339592
+2024-04-29 01:00:00+00:00,7.0477295,2.4177246,91.7085,1.8659027
+2024-04-29 02:00:00+00:00,7.0035706,1.0,91.75287,2.2226489
+2024-04-29 03:00:00+00:00,6.8962708,0.11303711,93.61485,1.0245817
+2024-04-29 04:00:00+00:00,6.8104553,0.0024414062,94.76013,1.0675774
+2024-04-29 05:00:00+00:00,7.303314,0.00048828125,93.196884,4.0187187
+2024-04-29 06:00:00+00:00,7.973175,0.001953125,86.22993,5.5266805
+2024-04-29 07:00:00+00:00,8.575531,0.011474609,81.90838,5.1414967
+2024-04-29 08:00:00+00:00,9.080719,0.0007324219,79.88434,5.7867575
+2024-04-29 09:00:00+00:00,9.745575,0.008300781,73.702156,6.280671
+2024-04-29 10:00:00+00:00,9.83963,0.07324219,71.238205,6.628249
+2024-04-29 11:00:00+00:00,9.906921,0.03515625,71.10199,7.1054225
+2024-04-29 12:00:00+00:00,9.728516,0.03515625,71.93014,6.988843
+2024-04-29 13:00:00+00:00,9.866272,0.0007324219,70.988945,6.583422
+2024-04-29 14:00:00+00:00,10.301819,0.0,68.63367,6.094949
+2024-04-29 15:00:00+00:00,10.334076,0.0,70.14671,5.370132
+2024-04-29 16:00:00+00:00,10.3350525,0.00048828125,70.12314,4.4399157
+2024-04-29 17:00:00+00:00,9.697968,0.0,77.83647,4.140097
+2024-04-29 18:00:00+00:00,8.726105,0.0,84.390274,3.6530101
+2024-04-29 19:00:00+00:00,8.446106,0.0,82.96291,3.6804469
+2024-04-29 20:00:00+00:00,7.713318,0.0,87.23665,3.1584463
+2024-04-29 21:00:00+00:00,7.2232666,0.0,89.86232,2.82387
+2024-04-29 22:00:00+00:00,7.061798,0.0,92.11847,2.582215
+2024-04-29 23:00:00+00:00,6.962311,0.0,92.565636,2.1261163
+2024-04-30 00:00:00+00:00,6.767395,0.0,92.89051,1.6832676
+2024-04-30 01:00:00+00:00,6.602295,0.0,93.70265,1.0137603
+2024-04-30 02:00:00+00:00,6.3303833,0.0,93.87892,0.8134493
+2024-04-30 03:00:00+00:00,6.1614075,0.0,94.12455,0.5102159
+2024-04-30 04:00:00+00:00,5.912689,0.0,95.44503,0.75842786
+2024-04-30 05:00:00+00:00,6.1000977,0.0,95.412796,0.9561791
+2024-04-30 06:00:00+00:00,6.98584,0.0,91.931206,0.74841803
+2024-04-30 07:00:00+00:00,8.258392,0.0,88.20276,0.724378
+2024-04-30 08:00:00+00:00,9.094696,0.0029296875,81.96618,0.5598213
+2024-04-30 09:00:00+00:00,9.947357,0.00048828125,77.198074,0.077476524
+2024-04-30 10:00:00+00:00,10.7630005,0.0,73.51591,0.38415068
+2024-04-30 11:00:00+00:00,10.751556,0.026367188,75.090164,0.6173705
+2024-04-30 12:00:00+00:00,11.376709,0.009277344,74.50444,1.1720618
+2024-04-30 13:00:00+00:00,12.956329,0.0,67.49177,1.2449167
+2024-04-30 14:00:00+00:00,13.684631,0.0,65.87787,0.8429301
+2024-04-30 15:00:00+00:00,13.350739,0.0,73.77886,0.5524691
+2024-04-30 16:00:00+00:00,12.313202,0.0,79.02982,0.73492336
+2024-04-30 17:00:00+00:00,11.350616,0.0,86.08293,0.84361595
+2024-04-30 18:00:00+00:00,10.688538,0.0,80.90212,1.0573696
+2024-04-30 19:00:00+00:00,10.0885315,0.0,77.79492,1.4106649
+2024-04-30 20:00:00+00:00,10.070068,0.0009765625,72.40723,1.4230998
+2024-04-30 21:00:00+00:00,9.603607,0.013671875,72.71415,1.9347988
+2024-04-30 22:00:00+00:00,9.497467,0.0009765625,72.81863,1.8806701
+2024-04-30 23:00:00+00:00,9.628082,0.0,71.75345,1.965621
+2024-05-01 00:00:00+00:00,10.239624,0.0,69.37511,2.071102
+2024-05-01 01:00:00+00:00,9.893402,0.0,68.20996,1.6720743
+2024-05-01 02:00:00+00:00,9.137329,0.0,70.24892,2.0819004
+2024-05-01 03:00:00+00:00,9.389526,0.0,64.40779,2.4620566
+2024-05-01 04:00:00+00:00,9.246033,0.0,62.73049,2.4925423
+2024-05-01 05:00:00+00:00,10.063141,0.0,55.84788,3.0981255
+2024-05-01 06:00:00+00:00,10.915436,0.0,53.02794,3.4027932
+2024-05-01 07:00:00+00:00,11.393036,0.0,57.01251,3.8583665
+2024-05-01 08:00:00+00:00,12.218933,0.0,55.774128,3.5328884
+2024-05-01 09:00:00+00:00,12.985779,0.0,54.529167,3.5465398
+2024-05-01 10:00:00+00:00,13.870087,0.0,51.056313,3.913181
+2024-05-01 11:00:00+00:00,14.934723,0.0,46.93927,4.260437
+2024-05-01 12:00:00+00:00,15.5469055,0.0,46.000587,3.6508586
+2024-05-01 13:00:00+00:00,15.752045,0.0,48.22435,3.4562097
+2024-05-01 14:00:00+00:00,16.148132,0.0,46.056007,3.681794
+2024-05-01 15:00:00+00:00,16.362823,0.0,46.438095,2.9955716
+2024-05-01 16:00:00+00:00,16.00647,0.0,49.500767,3.1267464
+2024-05-01 17:00:00+00:00,15.420563,0.0,50.360046,2.6224718
+2024-05-01 18:00:00+00:00,14.265015,0.0,53.41958,2.189706
+2024-05-01 19:00:00+00:00,13.33017,0.0,56.45411,2.559618
+2024-05-01 20:00:00+00:00,12.89389,0.0,57.48171,2.782973
+2024-05-01 21:00:00+00:00,12.430725,0.0,59.865902,2.9202108
+2024-05-01 22:00:00+00:00,12.473389,0.0,57.17603,3.190044
+2024-05-01 23:00:00+00:00,12.089813,0.0,58.696377,3.1019268
+2024-05-02 00:00:00+00:00,11.940552,0.0,58.714157,3.2389674
+2024-05-02 01:00:00+00:00,11.635712,0.0,60.33913,3.5010443
+2024-05-02 02:00:00+00:00,11.277618,0.0,60.972446,3.6297212
+2024-05-02 03:00:00+00:00,10.917633,0.0,62.45691,3.6121783
+2024-05-02 04:00:00+00:00,10.485779,0.0,62.891483,3.3645892
+2024-05-02 05:00:00+00:00,10.973145,0.0,60.72471,3.8139422
+2024-05-02 06:00:00+00:00,11.540741,0.0,59.283203,4.1272573
+2024-05-02 07:00:00+00:00,12.348419,0.0,58.776344,4.830829
+2024-05-02 08:00:00+00:00,13.294037,0.0,57.325474,4.6732802
+2024-05-02 09:00:00+00:00,14.260101,0.0,55.141907,4.3707075
+2024-05-02 10:00:00+00:00,15.348541,0.0,52.115467,4.326174
+2024-05-02 11:00:00+00:00,16.246826,0.0,49.919994,4.1039114
+2024-05-02 12:00:00+00:00,16.968292,0.0,49.481018,3.8192801
+2024-05-02 13:00:00+00:00,17.388916,0.0,47.622925,3.5089047
+2024-05-02 14:00:00+00:00,17.412079,0.0,47.41534,3.0436134
+2024-05-02 15:00:00+00:00,17.329803,0.0,44.885906,2.9647655
+2024-05-02 16:00:00+00:00,17.0867,0.0,43.071262,2.7201462
+2024-05-02 17:00:00+00:00,16.31369,0.0,44.6324,2.2660558
+2024-05-02 18:00:00+00:00,14.57254,0.0,51.650444,1.5358119
+2024-05-02 19:00:00+00:00,12.520081,0.0,58.907692,1.6140524
+2024-05-02 20:00:00+00:00,11.198212,0.0,63.20818,1.7488884
+2024-05-02 21:00:00+00:00,10.396271,0.0,66.55296,1.6108382
+2024-05-02 22:00:00+00:00,9.672363,0.0,71.650734,1.5350225
+2024-05-02 23:00:00+00:00,9.037476,0.0,76.19055,1.4906
diff --git a/test/test_util.py b/test/test_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..567cb561873fc4b9ac16f712f0cfd8313aff88f4
--- /dev/null
+++ b/test/test_util.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python3
+"""
+    Copyright (C) 2023 NIBIO <https://www.nibio.no/>. 
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as
+    published by the Free Software Foundation, either version 3 of the
+    License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
+"""
+
+import sys
+import glob
+import pytz
+import netCDF4 as nc
+from datetime import datetime
+
+local_timezone = pytz.timezone("UTC")
+
+def printusage():
+    print("Usage: test_util.py [printweather|printwhs]")
+
+if len(sys.argv) < 2:
+    printusage()
+    exit(1)
+
+if sys.argv[1] == "printweather":
+    parameters = ["air_temperature_2m","hourly_precipitation","relative_humidity_2m","wind_speed_10m"]
+    print("time,%s" % ",".join(parameters))
+    weather_data_files = glob.glob(f"weather_data/daily_archive_*.nc")
+    weather_data_files.sort()
+    for filename in weather_data_files:
+        current_daily_archive = nc.Dataset(filename)
+        timestep_idx = 0
+        for timestep in current_daily_archive.variables["time"][:]:
+            timestep_date = datetime.fromtimestamp(timestep).astimezone(local_timezone)
+            param_values_for_hour = []
+            for parameter in parameters:
+                param_values_for_hour.append(current_daily_archive.variables[parameter][timestep_idx][0][0][0])
+            
+            print(f"{timestep_date},{",".join(map(str,param_values_for_hour))}")
+            timestep_idx = timestep_idx + 1
+            #print (timestep[0][0][0])
+        current_daily_archive.close()
+
+elif sys.argv[1] == "printwhs":
+    result = nc.Dataset(f'../tmp/result.nc', 'r')
+    timestep_idx = 0
+    print("Date,WHS")
+    for timestep in result.variables["time"][:]:
+        timestep_date = datetime.fromtimestamp(timestep).astimezone(local_timezone)
+        print(f"{timestep_date},{result.variables["WHS"][timestep_idx][0][0][0]}")
+        timestep_idx = timestep_idx + 1
+    result.close()
+
+else:
+    printusage()
\ No newline at end of file
diff --git a/test/weather_data/daily_archive_20240401_cropped.nc b/test/weather_data/daily_archive_20240401_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..1408b320c88f21a816a6a0359e33b21caaf86d88
Binary files /dev/null and b/test/weather_data/daily_archive_20240401_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240402_cropped.nc b/test/weather_data/daily_archive_20240402_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..5c32e6c2cbd290b63e6f078abb1aaf89494c3088
Binary files /dev/null and b/test/weather_data/daily_archive_20240402_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240403_cropped.nc b/test/weather_data/daily_archive_20240403_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..900b32da57bbbfb908abaaea2a7c5f144afa3713
Binary files /dev/null and b/test/weather_data/daily_archive_20240403_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240404_cropped.nc b/test/weather_data/daily_archive_20240404_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..5cd2e93154c2628d387a3796facfea0c48234aaa
Binary files /dev/null and b/test/weather_data/daily_archive_20240404_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240405_cropped.nc b/test/weather_data/daily_archive_20240405_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..86835d978d09396b3df0ec6af84c7da8fd56f827
Binary files /dev/null and b/test/weather_data/daily_archive_20240405_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240406_cropped.nc b/test/weather_data/daily_archive_20240406_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..fd35c4a5325ce5c774386c7597fe0f5251202fb3
Binary files /dev/null and b/test/weather_data/daily_archive_20240406_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240407_cropped.nc b/test/weather_data/daily_archive_20240407_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..af3e50d7707096aed25877a7560865405af62a98
Binary files /dev/null and b/test/weather_data/daily_archive_20240407_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240408_cropped.nc b/test/weather_data/daily_archive_20240408_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..4407944aeae54e437db4b5408e61b2df659c0f79
Binary files /dev/null and b/test/weather_data/daily_archive_20240408_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240409_cropped.nc b/test/weather_data/daily_archive_20240409_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..d0195ee77ab6e157f1262bd24e8430465ff11287
Binary files /dev/null and b/test/weather_data/daily_archive_20240409_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240410_cropped.nc b/test/weather_data/daily_archive_20240410_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..c3e707aa0db0eef27ff41fac986f83de11ccb3b8
Binary files /dev/null and b/test/weather_data/daily_archive_20240410_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240411_cropped.nc b/test/weather_data/daily_archive_20240411_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..96098ceb90eee228e100d8fe79e3265c7f98b5e4
Binary files /dev/null and b/test/weather_data/daily_archive_20240411_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240412_cropped.nc b/test/weather_data/daily_archive_20240412_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..27330230ca7c55c2adf3d7a1b731811477266779
Binary files /dev/null and b/test/weather_data/daily_archive_20240412_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240413_cropped.nc b/test/weather_data/daily_archive_20240413_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..60a7748728bc60463eae1c4df1e26aa73b9f5d81
Binary files /dev/null and b/test/weather_data/daily_archive_20240413_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240414_cropped.nc b/test/weather_data/daily_archive_20240414_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..a461119afe3c1b27139b18023feafec176fa8b73
Binary files /dev/null and b/test/weather_data/daily_archive_20240414_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240415_cropped.nc b/test/weather_data/daily_archive_20240415_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..709538d1ad6911dd63527067f6b1122ea3423c78
Binary files /dev/null and b/test/weather_data/daily_archive_20240415_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240416_cropped.nc b/test/weather_data/daily_archive_20240416_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..7a32248935543f1eb7d74de32d7f4f1f008b2f41
Binary files /dev/null and b/test/weather_data/daily_archive_20240416_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240417_cropped.nc b/test/weather_data/daily_archive_20240417_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..7b4e459ded0352920046a688e9828cd730fc0dcc
Binary files /dev/null and b/test/weather_data/daily_archive_20240417_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240418_cropped.nc b/test/weather_data/daily_archive_20240418_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..56499d3a0ab5d803faefcb447fb29eda7523a993
Binary files /dev/null and b/test/weather_data/daily_archive_20240418_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240419_cropped.nc b/test/weather_data/daily_archive_20240419_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..622b347695ea7cc12b728c4a0e83a772ff4ee74f
Binary files /dev/null and b/test/weather_data/daily_archive_20240419_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240420_cropped.nc b/test/weather_data/daily_archive_20240420_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..7be5da3725795014f80e6ac87df50032c746453d
Binary files /dev/null and b/test/weather_data/daily_archive_20240420_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240421_cropped.nc b/test/weather_data/daily_archive_20240421_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..e170e1517cc0006b544376936f6f9027851f62ae
Binary files /dev/null and b/test/weather_data/daily_archive_20240421_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240422_cropped.nc b/test/weather_data/daily_archive_20240422_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..01ad7e9fc57407e6857d281997c062cc673bac4d
Binary files /dev/null and b/test/weather_data/daily_archive_20240422_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240423_cropped.nc b/test/weather_data/daily_archive_20240423_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..49e8c53d396348b16c8a082b511f74b7bf926236
Binary files /dev/null and b/test/weather_data/daily_archive_20240423_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240424_cropped.nc b/test/weather_data/daily_archive_20240424_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..a89be74478e595505eca6e4e40b54e2361bcea65
Binary files /dev/null and b/test/weather_data/daily_archive_20240424_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240425_cropped.nc b/test/weather_data/daily_archive_20240425_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..558cf9850b6b229ff3aa348038732212440b6f40
Binary files /dev/null and b/test/weather_data/daily_archive_20240425_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240426_cropped.nc b/test/weather_data/daily_archive_20240426_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..87b4bcb72fb13d217511631908f1cdab7801ab94
Binary files /dev/null and b/test/weather_data/daily_archive_20240426_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240427_cropped.nc b/test/weather_data/daily_archive_20240427_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..2ebaaa6cd530de41f3237a2d5195631ce5277fb0
Binary files /dev/null and b/test/weather_data/daily_archive_20240427_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240428_cropped.nc b/test/weather_data/daily_archive_20240428_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..b0500ce1b90a895beed27f3534191f03564ebc57
Binary files /dev/null and b/test/weather_data/daily_archive_20240428_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240429_cropped.nc b/test/weather_data/daily_archive_20240429_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..dd14609a6f9eaddf16b35bbd136c8834a13115d8
Binary files /dev/null and b/test/weather_data/daily_archive_20240429_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240430_cropped.nc b/test/weather_data/daily_archive_20240430_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..cd6f76d127eb430e99c187f9146020f0ef462683
Binary files /dev/null and b/test/weather_data/daily_archive_20240430_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240501_cropped.nc b/test/weather_data/daily_archive_20240501_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..c43b23eec5ec1c71ced33a9213014cf9218df960
Binary files /dev/null and b/test/weather_data/daily_archive_20240501_cropped.nc differ
diff --git a/test/weather_data/daily_archive_20240502_cropped.nc b/test/weather_data/daily_archive_20240502_cropped.nc
new file mode 100644
index 0000000000000000000000000000000000000000..9c2c0bfdff9c5346844e87aabe286cad8abd9849
Binary files /dev/null and b/test/weather_data/daily_archive_20240502_cropped.nc differ