Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9c0527b

Browse files
added more tests for instantaneous values
1 parent b5d47f5 commit 9c0527b

File tree

2 files changed

+34
-15
lines changed

2 files changed

+34
-15
lines changed

pydrograph/nwis.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -535,20 +535,29 @@ def get_ivs(self, station_ID, parameter_code='00060', start_date='2000-01-01', e
535535
cols = sitefile_text[skiprows - 2].decode('utf-8').strip().split('\t')
536536
loginfo = [str(station_ID), url, self.get_datetime_retrieved(sitefile_text)]
537537
df = pd.read_csv(url, sep='\t', skiprows=skiprows, header=None, names=cols, dtype={'site_no': object})
538-
if len(df) > 0:
539-
df.index = pd.to_datetime(df.datetime)
540-
loginfo.append(True)
541-
else:
542-
loginfo.append(False)
543-
self.log = self.log.append(pd.DataFrame([loginfo], columns=self.log_cols))
538+
539+
if len(df) > 2:
540+
541+
if len(df) > 0:
542+
df.index = pd.to_datetime(df.datetime)
543+
loginfo.append(True)
544+
else:
545+
loginfo.append(False)
546+
self.log = self.log.append(pd.DataFrame([loginfo], columns=self.log_cols))
544547

545-
if sample_period is not None:
546-
df = df.resample(sample_period).agg(agg_method)
547-
df = df.rename(columns = {df.columns[1]: 'discharge (cfs)'})
548+
if sample_period is not None:
549+
df = df.resample(sample_period).agg(agg_method)
550+
df = df.rename(columns = {df.columns[0]: 'discharge (cfs)'})
551+
else:
552+
df = df.rename(columns = {df.columns[4]: 'discharge (cfs)', df.columns[5]: 'code'})
553+
548554
else:
549-
df = df.rename(columns = {df.columns[4]: 'discharge (cfs)', df.columns[5]: 'code'})
550-
551-
return df
555+
print('No data at this site during this timeframe.')
556+
557+
if len(df) > 2:
558+
return df
559+
else:
560+
return None
552561

553562
def get_measurements(self, station_ID, txt='measurement'):
554563
"""Retrieves field measurements for a site.

pydrograph/tests/test_nwis.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,28 @@
77
import numpy as np
88
from pandas._testing import assert_frame_equal
99

10-
1110
@pytest.fixture(scope='session')
1211
def extent_poly():
1312
extent_poly = box(390000, 1330000, 500000, 1455000)
1413
extent_poly_ll = project(extent_poly, "+init=epsg:{}".format(5070), "+init=epsg:4269")
1514
return extent_poly_ll
1615

17-
1816
@pytest.fixture(scope='session')
1917
def nwis_instance(extent_poly):
2018
nwis_instance = Nwis(extent=extent_poly)
2119
return nwis_instance
2220

23-
2421
@pytest.fixture(scope='session')
2522
def field_sites(nwis_instance):
2623
field_sites = nwis_instance.get_siteinfo('field_measurements')
2724
return field_sites
2825

26+
@pytest.fixture(scope='session')
27+
def stations(nwis_instance):
28+
stations = nwis_instance.get_iv_siteinfo(attributes='iv_attributes')
29+
stations = stations.site_no.unique()
30+
#stations = stations.to_list()
31+
return stations
2932

3033
def test_compute_geometries(extent_poly, nwis_instance, field_sites):
3134
geoms = nwis_instance._compute_geometries(field_sites)
@@ -38,3 +41,10 @@ def test_instantaneous_value(nwis_instance):
3841
assert len(df) > 0
3942
assert 'site_no' in df.columns
4043
assert df.site_no.dtype == np.object
44+
45+
def test_get_all_ivs(nwis_instance, stations):
46+
all_sites = nwis_instance.get_all_ivs(stations)
47+
site_one = list(all_sites.values())[0]
48+
assert len(all_sites) > 0
49+
assert len(site_one) > 2
50+
#assert all_sites.site_no.dtype == np.object

0 commit comments

Comments
 (0)