import xarray as xr
import numpy as np
import pandas as pd
from datetime import datetime, timedelta

# Define input files
files = [
"/Users/teddyallen/mydocuments/work/climate_trend_video/data/2mT_hr_1990_1999.nc",
"/Users/teddyallen/mydocuments/work/climate_trend_video/data/2mT_hr_2000_2010.nc",
"/Users/teddyallen/mydocuments/work/climate_trend_video/data/2mT_hr_2011_2020.nc",
"/Users/teddyallen/mydocuments/work/climate_trend_video/data/2mT_hr_2021_2024.nc" # actually all 2024 data is NaN.
]

# Open and concatenate the datasets
ds = xr.open_mfdataset(files, combine="by_coords")

# Extract temperature variable 't2m'
var_name = "t2m"
temp_values = ds[var_name].values

# Reshape into daily (24-hour) groups
num_days = temp_values.shape[0] // 24 # Assuming time is the first dimension
temp_reshaped = temp_values[:num_days * 24].reshape(num_days, 24)

# Compute daily Tmin and Tmax and convert from K to Celsius
daily_tmin = np.min(temp_reshaped, axis=1) - 273.15
daily_tmax = np.max(temp_reshaped, axis=1) - 273.15

# Define date range
start_date = datetime(1990, 1, 1)
end_date = datetime(2023, 12, 31)
dates = [start_date + timedelta(days=i) for i in range((end_date - start_date).days + 1)]

# Create a DataFrame for the CSV file
data = {
"year": [date.year for date in dates],
"month": [date.month for date in dates],
"day": [date.day for date in dates],
"prcp": [0] * len(dates), # Precipitation values set to 0. Fill in this column from EXCEL with precip text file data
"tmax": daily_tmax[:len(dates)],
"tmin": daily_tmin[:len(dates)]
}

df = pd.DataFrame(data)

# Save to CSV
csv_filename = "climate_data.csv"
df.to_csv(csv_filename, index=False)

print(f"CSV file '{csv_filename}' has been created successfully.")
print("Daily Tmin and Tmax values have been extracted and saved.")
