Skip to content

Commit ceec388

Browse files
committed
Updated resample code to work with all intervals.
1 parent 77794e0 commit ceec388

1 file changed

Lines changed: 29 additions & 4 deletions

File tree

cwmscli/usgs/getusgs_cda.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
import re
23
from datetime import datetime, timedelta
34
from typing import Optional
45

@@ -370,15 +371,39 @@ def CWMS_writeData(USGS_ts, USGS_data, USGS_data_method, days_back):
370371
office = row["office-id"]
371372
values["quality-code"] = 0
372373

373-
# 15 minute conversion to allow storing smaller interval data (eg. 5 minute) as 15 minute data
374-
if ts_id.split(".")[3] == "15Minutes":
374+
# check for non irregular data interval and resample data to that interval
375+
if not (
376+
"~" in ts_id.split(".")[3] or ts_id.split(".")[3] == "0"
377+
):
378+
interval_number = re.match(
379+
r"^(\d+)(.*)", ts_id.split(".")[3]
380+
).group(1)
381+
interval_type = re.match(
382+
r"^(\d+)(.*)", ts_id.split(".")[3]
383+
).group(2)
384+
if interval_type == "Minutes":
385+
interval_initial = "T"
386+
else:
387+
interval_initial = interval_type[0]
375388
values_dt = values.copy()
376389
values_dt["date-time"] = pd.to_datetime(
377390
values_dt["date-time"]
378391
)
379392
values_dt.set_index("date-time", inplace=True)
380-
values15 = values_dt.resample("15min").first()
381-
values = values15.reset_index()
393+
values_new = values_dt.resample(
394+
interval_number + interval_initial
395+
).first()
396+
values = values_new.reset_index()
397+
398+
# # 15 minute conversion to allow storing smaller interval data (eg. 5 minute) as 15 minute data
399+
# if ts_id.split(".")[3] == "15Minutes":
400+
# values_dt = values.copy()
401+
# values_dt["date-time"] = pd.to_datetime(
402+
# values_dt["date-time"]
403+
# )
404+
# values_dt.set_index("date-time", inplace=True)
405+
# values15 = values_dt.resample("15min").first()
406+
# values = values15.reset_index()
382407

383408
# write values to CWMS database
384409
try:

0 commit comments

Comments
 (0)