From 630e6856b7c96a72e0de91185949d14bd41e0422 Mon Sep 17 00:00:00 2001 From: Olivier Jossoud <olivier.jossoud@lsce.ipsl.fr> Date: Fri, 8 Nov 2019 14:23:35 +0100 Subject: [PATCH] PicarroProvider. Better manage case when Picarro data are unavailable. --- src/dataprovider/exploprovider.py | 7 ++++--- src/dataprovider/picarroprovider.py | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/dataprovider/exploprovider.py b/src/dataprovider/exploprovider.py index ab59eac..a415723 100644 --- a/src/dataprovider/exploprovider.py +++ b/src/dataprovider/exploprovider.py @@ -116,8 +116,8 @@ class Dataset: picarro_df = self.picarro_prvd.get_df(self.first_data_datetime, self.last_data_datetime, ["H2O", "Delta_D_H", "Delta_18_16"]) - except: - print("Failed to get Picarro data") + except ValueError as e: + print("Failed to get Picarro data: " + str(e)) return picarro_df.to_csv(path_or_buf=self.full_directory_name + "/" + picarro_filename, @@ -340,7 +340,8 @@ class InstrumentPeriodicLog(InstrumentLog): def __get_df__(self) -> pd.DataFrame: df = pd.read_csv(self.full_file_name, sep="\t", parse_dates=["datetime"]) - df["datetime"] = df["datetime"].dt.tz_localize('UTC') + if not df.empty: + df["datetime"] = df["datetime"].dt.tz_localize('UTC') return df def get_variables(self): diff --git a/src/dataprovider/picarroprovider.py b/src/dataprovider/picarroprovider.py index 5d7e0f4..11bccda 100644 --- a/src/dataprovider/picarroprovider.py +++ b/src/dataprovider/picarroprovider.py @@ -2,6 +2,7 @@ import pandas as pd import numpy as np import datetime import os +import utils import re from config import Config @@ -38,6 +39,9 @@ class PicarroProvider: picarro_df["datetime"] = pd.to_datetime(picarro_df["DATE"] + " " + picarro_df["TIME"]).dt.tz_localize('UTC') picarro_df = picarro_df.drop(columns=["DATE", "TIME"]) picarro_df = picarro_df[(picarro_df["datetime"] >= first_datetime) & (picarro_df["datetime"] <= last_datetime)] + if picarro_df.empty: + raise ValueError("No Picarro data available between " + first_datetime.strftime(utils.datetime_format) + + " and " + last_datetime.strftime(utils.datetime_format)) picarro_df = picarro_df.sort_values(by=['datetime']) -- GitLab