Beispiel #1
0
 def test_dsn_exists(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=5,
                             base_year=1870)
     with self.assertRaisesRegexp(DSNExistsError, 'exists.'):
         wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=5,
                                 base_year=1870)
Beispiel #2
0
 def test_listdsns(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     ldsns = wdmtoolbox.listdsns(self.wdmname)
 def test_deletedsn(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     wdmtoolbox.deletedsn(self.wdmname, 101)
Beispiel #4
0
    def test_extract(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=5,
                                base_year=1870)
        wdmtoolbox.csvtowdm(self.wdmname, 101,
                            input_ts='tests/sunspot_area.csv')
        ret1 = wdmtoolbox.extract(self.wdmname, 101).astype('f')
        ret2 = wdmtoolbox.extract('{0},101'.format(self.wdmname)).astype('f')
        assert_frame_equal(ret1, ret2)

        ret3 = tstoolbox.read('tests/sunspot_area.csv').astype('f')
        ret1.columns = ['Area']
        assert_frame_equal(ret1, ret3)

        ret4 = tstoolbox.read('tests/sunspot_area_with_missing.csv',
                              dropna='no').astype('f')

        wdmtoolbox.createnewdsn(self.wdmname,
                                500,
                                tcode=5,
                                base_year=1870)
        wdmtoolbox.csvtowdm(self.wdmname,
                            500,
                            input_ts='tests/sunspot_area_with_missing.csv')
        ret5 = wdmtoolbox.extract(self.wdmname, 500).astype('f')
        ret5.columns = ['Area']
        assert_frame_equal(ret5, ret4)
Beispiel #5
0
def test_createwdm():
    fd, fname = tempfile.mkstemp(suffix='.wdm')
    os.close(fd)
    assert _createwdm(fname) == 0
    wdmtoolbox.createnewwdm(fname, overwrite=True)
    # A brand spanking new wdm should be 40k
    assert os.path.getsize(fname) == 40 * 1024
    os.remove(fname)
def test_createwdm():
    fd, fname = tempfile.mkstemp(suffix='.wdm')
    os.close(fd)
    assert _createwdm(fname) == 0
    wdmtoolbox.createnewwdm(fname, overwrite=True)
    # A brand spanking new wdm should be 40k
    assert os.path.getsize(fname) == 40 * 1024
    os.remove(fname)
Beispiel #7
0
 def test_out_of_bounds_dsn(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2, base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101, input_ts="tests/nwisiv_02246000.csv")
     with self.assertRaisesRegex(
         WDMError, "WDM error: data set number out of valid range"
     ):
         ret1 = wdmtoolbox.extract(self.wdmname, 32001)
Beispiel #8
0
 def test_rdii(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     wdmtoolbox.copydsn(self.wdmname, 101, self.wdmname, 1101)
     wdmtoolbox.wdmtoswmm5rdii(self.wdmname, 101, 1101)
Beispiel #9
0
 def test_dsn_not_in_wdm(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     with assertRaisesRegexp(WDMError, 'error code -81'):
         ret1 = wdmtoolbox.extract(self.wdmname, 32000)
Beispiel #10
0
 def test_extract_args(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     with assertRaisesRegexp(ValueError,
                             'The only allowed keywords are'):
         ret1 = wdmtoolbox.extract(self.wdmname, 101, ph=True)
Beispiel #11
0
 def test_out_of_bounds_dsn(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     with assertRaisesRegexp(WDMError,
                 'WDM error: data set number out of valid range'):
         ret1 = wdmtoolbox.extract(self.wdmname, 32001)
Beispiel #12
0
 def test_cleancopytoself(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     with self.assertRaisesRegexp(ValueError,
                                  'The "inwdmpath" cannot be the same as "outwdmpath"'):
         wdmtoolbox.cleancopywdm(self.wdmname, self.wdmname)
Beispiel #13
0
 def test_cleancopy_a_to_b(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                             base_year=1970, tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname, 101,
                         input_ts='tests/nwisiv_02246000.csv')
     tfd, twdmname = tempfile.mkstemp(suffix='.wdm')
     os.close(tfd)
     wdmtoolbox.cleancopywdm(self.wdmname, twdmname, overwrite=True)
     os.remove(twdmname)
Beispiel #14
0
    def test_start_date(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                                base_year=1970, tsstep=15)
        wdmtoolbox.csvtowdm(self.wdmname, 101,
                            input_ts='tests/nwisiv_02246000.csv')
        ret1 = wdmtoolbox.extract(self.wdmname, 101, start_date='2014-02-21 16:00:00')

        ret3 = tstoolbox.read('tests/nwisiv_02246000.csv', start_date='2014-02-21 16:00:00').astype('float64')
        ret1.columns = ['02246000_iv_00060']
        assert_frame_equal(ret1, ret3)
Beispiel #15
0
    def test_start_date(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2, base_year=1970, tsstep=15)
        wdmtoolbox.csvtowdm(self.wdmname, 101, input_ts="tests/nwisiv_02246000.csv")
        ret1 = wdmtoolbox.extract(self.wdmname, 101, start_date="2014-02-21 16:00:00")

        ret3 = tstoolbox.read(
            "tests/nwisiv_02246000.csv", start_date="2014-02-21 16:00:00"
        ).astype("float64")
        ret3.index = ret3.index.tz_localize(None)
        ret1.columns = ["02246000_iv_00060"]
        assert_frame_equal(ret1, ret3, check_index_type=False)
Beispiel #16
0
 def test_dsn_not_in_wdm(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname,
                             101,
                             tcode=2,
                             base_year=1970,
                             tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname,
                         101,
                         input_ts='tests/nwisiv_02246000.csv')
     with self.assertRaisesRegexp(WDMError, 'error code -81'):
         ret1 = wdmtoolbox.extract(self.wdmname, 32000)
Beispiel #17
0
 def test_listdsns(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname,
                             101,
                             tcode=2,
                             base_year=1970,
                             tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname,
                         101,
                         input_ts="tests/nwisiv_02246000.csv")
     wdmtoolbox.createnewwdm(self.awdmname, overwrite=True)
     wdmtoolbox.copydsn(self.wdmname, 101, self.awdmname, 1101)
Beispiel #18
0
    def test_tstep(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                                base_year=1970, tsstep=15)
        wdmtoolbox.csvtowdm(self.wdmname, 101,
                            input_ts='tests/nwisiv_02246000.csv')
        ret1 = wdmtoolbox.extract(self.wdmname, 101)
        ret2 = wdmtoolbox.extract('{0},101'.format(self.wdmname))
        assert_frame_equal(ret1, ret2)

        ret3 = tstoolbox.read('tests/nwisiv_02246000.csv').astype('float64')
        ret1.columns = ['02246000_iv_00060']
        assert_frame_equal(ret1, ret3)
Beispiel #19
0
 def test_extract_args(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname,
                             101,
                             tcode=2,
                             base_year=1970,
                             tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname,
                         101,
                         input_ts='tests/nwisiv_02246000.csv')
     with self.assertRaisesRegexp(ValueError,
                                  'The only allowed keywords are'):
         ret1 = wdmtoolbox.extract(self.wdmname, 101, ph=True)
Beispiel #20
0
 def test_negative_dsn(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname,
                             101,
                             tcode=2,
                             base_year=1970,
                             tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname,
                         101,
                         input_ts='tests/nwisiv_02246000.csv')
     with self.assertRaisesRegexp(
             WDMError, 'WDM error: data set number out of valid range'):
         ret1 = wdmtoolbox.extract(self.wdmname, 0)
 def test_cleancopy_a_to_b(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname,
                             101,
                             tcode=2,
                             base_year=1970,
                             tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname,
                         101,
                         input_ts='tests/nwisiv_02246000.csv')
     tfd, twdmname = tempfile.mkstemp(suffix='.wdm')
     os.close(tfd)
     wdmtoolbox.cleancopywdm(self.wdmname, twdmname, overwrite=True)
     os.remove(twdmname)
 def test_cleancopytoself(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname,
                             101,
                             tcode=2,
                             base_year=1970,
                             tsstep=15)
     wdmtoolbox.csvtowdm(self.wdmname,
                         101,
                         input_ts='tests/nwisiv_02246000.csv')
     with assertRaisesRegexp(
             ValueError,
             'The "inwdmpath" cannot be the same as "outwdmpath"'):
         wdmtoolbox.cleancopywdm(self.wdmname, self.wdmname)
Beispiel #23
0
    def test_copy_to_self(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                                base_year=1970, tsstep=15)
        wdmtoolbox.csvtowdm(self.wdmname, 101,
                            input_ts='tests/nwisiv_02246000.csv')
        ret1 = wdmtoolbox.extract(self.wdmname, 101)
        ret2 = wdmtoolbox.extract('{0},101'.format(self.wdmname))
        assert_frame_equal(ret1, ret2)

        ret3 = tstoolbox.read('tests/nwisiv_02246000.csv').astype('float64')
        ret1.columns = ['02246000_iv_00060']
        assert_frame_equal(ret1, ret3)

        wdmtoolbox.copydsn(self.wdmname, 101, self.wdmname, 1101)
Beispiel #24
0
    def test_end_date(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=2,
                                base_year=1970, tsstep=15)
        wdmtoolbox.csvtowdm(self.wdmname, 101,
                            input_ts='tests/nwisiv_02246000.csv')
        ret1 = wdmtoolbox.extract(self.wdmname,
                                  101,
                                  end_date='2014-02-22 11:00:00')

        ret3 = tstoolbox.read('tests/nwisiv_02246000.csv',
                              end_date='2014-02-22 11:00:00').astype('float64')
        ret3.index = ret3.index.tz_localize(None)
        ret1.columns = ['02246000_iv_00060']
        assert_frame_equal(ret1, ret3, check_index_type=False)
Beispiel #25
0
    def test_end_date(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname,
                                101,
                                tcode=2,
                                base_year=1970,
                                tsstep=15)
        wdmtoolbox.csvtowdm(self.wdmname,
                            101,
                            input_ts='tests/nwisiv_02246000.csv')
        ret1 = wdmtoolbox.extract(self.wdmname,
                                  101,
                                  end_date='2014-02-22 11:00:00')

        ret3 = tstoolbox.read('tests/nwisiv_02246000.csv',
                              end_date='2014-02-22 11:00:00').astype('float64')
        ret1.columns = ['02246000_iv_00060']
        assert_frame_equal(ret1, ret3)
Beispiel #26
0
    def test_copy_to_self(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname,
                                101,
                                tcode=2,
                                base_year=1970,
                                tsstep=15)
        wdmtoolbox.csvtowdm(self.wdmname,
                            101,
                            input_ts="tests/nwisiv_02246000.csv")
        ret1 = wdmtoolbox.extract(self.wdmname, 101)
        ret2 = wdmtoolbox.extract("{0},101".format(self.wdmname))
        assert_frame_equal(ret1, ret2, check_index_type=False)

        ret3 = tstoolbox.read("tests/nwisiv_02246000.csv").astype("float64")
        ret3.index = ret3.index.tz_localize(None)
        ret1.columns = ["02246000_iv_00060"]
        assert_frame_equal(ret1, ret3, check_index_type=False)

        wdmtoolbox.copydsn(self.wdmname, 101, self.wdmname, 1101)
Beispiel #27
0
    def test_extract(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=5, base_year=1870)
        wdmtoolbox.csvtowdm(self.wdmname, 101, input_ts="tests/sunspot_area.csv")
        ret1 = wdmtoolbox.extract(self.wdmname, 101).astype("f")
        ret2 = wdmtoolbox.extract("{0},101".format(self.wdmname)).astype("f")
        assert_frame_equal(ret1, ret2)

        ret3 = tstoolbox.read("tests/sunspot_area.csv").astype("f")
        ret1.columns = ["Area"]
        assert_frame_equal(ret1, ret3)

        ret4 = tstoolbox.read(
            "tests/sunspot_area_with_missing.csv", dropna="no"
        ).astype("f")

        wdmtoolbox.createnewdsn(self.wdmname, 500, tcode=5, base_year=1870)
        wdmtoolbox.csvtowdm(
            self.wdmname, 500, input_ts="tests/sunspot_area_with_missing.csv"
        )
        ret5 = wdmtoolbox.extract(self.wdmname, 500).astype("f")
        ret5.columns = ["Area"]
        assert_frame_equal(ret5, ret4)
Beispiel #28
0
    def test_extract(self):
        wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
        wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=5, base_year=1870)
        wdmtoolbox.csvtowdm(self.wdmname,
                            101,
                            input_ts='tests/sunspot_area.csv')
        ret1 = wdmtoolbox.extract(self.wdmname, 101)
        ret2 = wdmtoolbox.extract('{0},101'.format(self.wdmname))
        assert_frame_equal(ret1, ret2)

        ret3 = tstoolbox.read('tests/sunspot_area.csv')
        ret1.columns = ['Area']
        assert_frame_equal(ret1, ret3)

        ret4 = tstoolbox.read('tests/sunspot_area_with_missing.csv',
                              dropna='no')

        wdmtoolbox.createnewdsn(self.wdmname, 500, tcode=5, base_year=1870)
        wdmtoolbox.csvtowdm(self.wdmname,
                            500,
                            input_ts='tests/sunspot_area_with_missing.csv')
        ret5 = wdmtoolbox.extract(self.wdmname, 500)
        ret5.columns = ['Area']
        assert_frame_equal(ret5, ret4)
Beispiel #29
0
    "PRECIP":
    ["Precipitation", "mm", "NLDAS:NLDAS_FORA0125_H.002:APCPsfc", "mm"],
    "ATEMP":
    ["Air Temperature", "Fahrenheit", "NLDAS:NLDAS_FORA0125_H.002:TMP2m", "K"]
}

#If you add more constituents, you will need to expland this dict

UStop = 49.3457868  # north lat
USleft = -124.7844079  # west long
USright = -66.9513812  # east long
USbottom = 24.7433195  # south lat
#US Lat and long coordinates

WDMFileName = 'MetData_20200720.wdm'
wdm.createnewwdm(WDMFileName, overwrite=True)
index = 1
from datetime import datetime
with open("MetLog.txt", 'w') as Logfile:
    Logfile.write("Started Downloading the data at " +
                  datetime.isoformat(datetime.now()) + " and saving in " +
                  WDMFileName + "\n")
    for station in StationList:
        # Going through Each Station in the list
        TimeZoneAdjustment = station[3]
        Logfile.write("Station: " + station[0] + ", Latitude: " +
                      str(station[1]) + ", Longitude: " + str(station[2]) +
                      ", TimeZoneAdjustment: " + str(TimeZoneAdjustment) +
                      "\n")

        for const in Constituent:
Beispiel #30
0
 def test_dsn_exists(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=5, base_year=1870)
     with self.assertRaisesRegex(DSNExistsError, "exists."):
         wdmtoolbox.createnewdsn(self.wdmname, 101, tcode=5, base_year=1870)
Beispiel #31
0
 def test_overwrite(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     with self.assertRaisesRegexp(WDMFileExists, 'exists.'):
         wdmtoolbox.createnewwdm(self.wdmname)
 def test_overwrite(self):
     wdmtoolbox.createnewwdm(self.wdmname, overwrite=True)
     with assertRaisesRegexp(WDMFileExists, 'exists.'):
         wdmtoolbox.createnewwdm(self.wdmname)