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)
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)
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)
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_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)
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)
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)
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)
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)
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)
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_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)
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)
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)
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)
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)
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)
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_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)
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)
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)
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)
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)
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)
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)
"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:
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)
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)