library(readr) library(dplyr) library(lubridate)
station_number <- “07” # 07 = Aguila years <- 1987:2022 base_url <- “https://azmet.arizona.edu/azmet/data”
yy <- sprintf(“%02d”, years %% 100) file_names <- paste0(station_number, yy, “rd.txt”) urls <- file.path(base_url, file_names)
cat(“First few URLs I will read:”) print(head(urls))
read_aguila_year <- function(url) { cat(“Reading:”, url, “”)
df <- read_csv( url, col_names = FALSE, show_col_types = FALSE )
df_clean <- df %>% transmute( YEAR2 = X1, DOY = X2, STATION_NO = X3, TMAX_C = X4 ) %>% mutate( # Convert 2-digit year YEAR = if_else(YEAR2 >= 87, 1900 + YEAR2, 2000 + YEAR2),
# Convert DOY to actual date
DATE = as.Date(DOY - 1, origin = paste0(YEAR, "-01-01")),
# Fix missing values (999)
TMAX_C = if_else(TMAX_C >= 900, NA_real_, TMAX_C),
# Convert to Fahrenheit
TMAX_F = TMAX_C * 9/5 + 32,
STATION = "AGUILA"
)
return(df_clean) }
all_years <- list()
for (i in seq_along(urls)) { this_url <- urls[i]
this_df <- try(read_aguila_year(this_url), silent = TRUE)
if (inheri