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

This commit is contained in:
2025-05-27 10:12:20 +02:00
parent 6851f03dbd
commit 87462211a9

View File

@ -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 = {