Ejemplo n.º 1
0
def test_usgs_gage_for_instantaneous_multi_parameter(
        dates_instantaneous, instantaneous_value_file_multi_parameter):

    filestream = StringIO(instantaneous_value_file_multi_parameter)
    usgs_gage = rdb.read_rdb_in(filestream)

    assert usgs_gage.name == "USGS 03401385 DAVIS BRANCH AT HIGHWAY 988 NEAR MIDDLESBORO, KY"
    assert len(usgs_gage.parameters) == 3

    assert usgs_gage.parameters[0].code == "02_00065"
    assert usgs_gage.parameters[1].code == "03_00010"
    assert usgs_gage.parameters[2].code == "04_00300"

    assert usgs_gage.parameters[0].name == "Gage height"
    assert usgs_gage.parameters[1].name == "Temperature"
    assert usgs_gage.parameters[2].name == "Dissolved oxygen"

    assert usgs_gage.parameters[0].units == "feet"
    assert usgs_gage.parameters[1].units == "degrees Celsius"
    assert usgs_gage.parameters[2].units == "milligrams per liter"

    assert list(usgs_gage.parameters[0].dates) == list(dates_instantaneous)
    assert list(usgs_gage.parameters[1].dates) == list(dates_instantaneous)
    assert list(usgs_gage.parameters[2].dates) == list(dates_instantaneous)

    assert list(usgs_gage.parameters[0].values) == list(
        np.array([1, 2, 3, 4, 5]))
    assert list(usgs_gage.parameters[1].values) == list(
        np.array([5, 10, 15, 20, 25]))
    assert list(usgs_gage.parameters[2].values) == list(
        np.array([2.0, 1.25, 1.20, 0.5, 0.75]))
Ejemplo n.º 2
0
def test_usgs_gage_for_instantaneous_single_parameter_bad_characters_data_raises_value_error(
        dates_instantaneous,
        instantaneous_value_file_single_parameter_bad_characters):

    filestream = StringIO(
        instantaneous_value_file_single_parameter_bad_characters)

    with pytest.raises(ValueError) as verror:
        usgs_gage = rdb.read_rdb_in(filestream)

    assert str(verror.value) == "Can not convert Ice value to a float"
Ejemplo n.º 3
0
def test_usgs_gage_for_daily_single_parameter_bad_data_row_formatting(
        dates_daily, daily_value_file_single_parameter_bad_formatting):

    filestream = StringIO(daily_value_file_single_parameter_bad_formatting)
    usgs_gage = rdb.read_rdb_in(filestream)

    assert usgs_gage.name == "USGS 03290500 KENTUCKY RIVER AT LOCK 2 AT LOCKPORT, KY"
    assert len(usgs_gage.parameters) == 1
    assert usgs_gage.parameters[0].code == "06_00060_00003"
    assert usgs_gage.parameters[0].name == "Discharge"
    assert usgs_gage.parameters[0].units == "cubic feet per second (Mean)"
    assert list(usgs_gage.parameters[0].dates) == list(dates_daily)
    assert list(usgs_gage.parameters[0].values) == list(
        np.array([10, 20, 30, 40, 50]))
Ejemplo n.º 4
0
def test_usgs_gage_for_instantaneous_single_parameter(
        dates_instantaneous, instantaneous_value_file_single_parameter):

    filestream = StringIO(instantaneous_value_file_single_parameter)
    usgs_gage = rdb.read_rdb_in(filestream)

    assert usgs_gage.name == "USGS 11143000 BIG SUR R NR BIG SUR CA"
    assert len(usgs_gage.parameters) == 1
    assert list(usgs_gage.parameters[0].dates) == list(dates_instantaneous)
    assert usgs_gage.parameters[0].code == "03_00065"
    assert usgs_gage.parameters[0].name == "Gage height"
    assert usgs_gage.parameters[0].units == "feet"
    assert list(usgs_gage.parameters[0].values) == list(
        np.array([5, 10, 15, 4.5, 5.5]))
Ejemplo n.º 5
0
def test_usgs_gage_for_instantaneous_single_parameter_missing_data(
        dates_instantaneous,
        instantaneous_value_file_single_parameter_missing_data):

    filestream = StringIO(
        instantaneous_value_file_single_parameter_missing_data)
    usgs_gage = rdb.read_rdb_in(filestream)

    assert usgs_gage.name == "USGS 11143000 BIG SUR R NR BIG SUR CA"
    assert len(usgs_gage.parameters) == 1
    assert usgs_gage.parameters[0].code == "03_00065"
    assert usgs_gage.parameters[0].name == "Gage height"
    assert usgs_gage.parameters[0].units == "feet"
    assert list(usgs_gage.parameters[0].dates) == list(dates_instantaneous)

    np.testing.assert_almost_equal(usgs_gage.parameters[0].values,
                                   np.array([5, 10, np.nan, np.nan, 5.5]))