From 87462211a92ba4a0c8e48f7bda4f3ecdac483e48 Mon Sep 17 00:00:00 2001 From: Florez Ospina Juan Felipe Date: Tue, 27 May 2025 10:12:20 +0200 Subject: [PATCH] Update instruments/readers/nasa_ames_reader.py to handle dirty text entries. Dirty entries of time variables that cannot be properly processed are sent to nat --- instruments/readers/nasa_ames_reader.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/instruments/readers/nasa_ames_reader.py b/instruments/readers/nasa_ames_reader.py index 1601542..4731be7 100644 --- a/instruments/readers/nasa_ames_reader.py +++ b/instruments/readers/nasa_ames_reader.py @@ -152,10 +152,22 @@ def read_nasa_ames_as_dict(filename, instruments_dir: str = None, work_with_copy sep="\s+", header=header_length - 1, skip_blank_lines=True) + + df['start_time'] = df['start_time'].astype(str).str.strip() + df['end_time'] = df['end_time'].astype(str).str.strip() + + df['start_time'] = pd.to_numeric(df['start_time'], errors='coerce') + df['end_time'] = pd.to_numeric(df['end_time'], errors='coerce') + # Compute actual datetime from start_time and (if present) end_time - df['start_time'] = df['start_time'].apply(lambda x: start_date + timedelta(days=x)) + df['start_time'] = df['start_time'].apply( + lambda x: start_date + timedelta(days=x) if pd.notna(x) else pd.NaT + ) + if 'end_time' in df.columns: - df['end_time'] = df['end_time'].apply(lambda x: start_date + timedelta(days=x)) + df['end_time'] = df['end_time'].apply( + lambda x: start_date + timedelta(days=x) if pd.notna(x) else pd.NaT + ) # Create header metadata dictionary header_metadata_dict = {