def data(self): data = ghcn_daily.get_data(self.catalog_entry, elements=self.parameter_code, as_dataframe=True) # [parameter_code] if not data or data[self.parameter_code].empty: raise ValueError('No Data Available') data = data[self.parameter_code] data = data[self.start_string:self.end_string] if data.empty: raise ValueError('No Data Available') data.rename(columns={'value': self.parameter}, inplace=True) return data
def test_get_data_as_dataframes(): for station_id, sample_data in test_data.iteritems(): elements = sample_data.keys() with test_util.mocked_urls('ncdc/ghcnd/%s.dly' % station_id): station_data = ghcn_daily.get_data( station_id, elements=elements, as_dataframe=True) for element_id, element_test_data in sample_data.iteritems(): element_df = station_data[element_id] for date, test_value in element_test_data.iteritems(): value = element_df.xs(date) test_array = np.array(test_value, dtype=value.dtype) nulls = pandas.isnull(value) assert np.all(pandas.isnull(test_array) == nulls) assert np.all(value[~nulls] == test_array[~nulls])
def test_get_data_as_dataframes(): for station_id, sample_data in test_data.items(): elements = list(sample_data.keys()) with test_util.mocked_urls('ncdc/ghcnd/%s.dly' % station_id): station_data = ghcn_daily.get_data(station_id, elements=elements, as_dataframe=True) for element_id, element_test_data in sample_data.items(): element_df = station_data[element_id] for date, test_value in element_test_data.items(): date = pandas.Period(pandas.Timestamp(date), freq='D') value = element_df.xs(date) test_array = np.array(test_value, dtype=value.dtype) nulls = pandas.isnull(value) assert np.all(pandas.isnull(test_array) == nulls) assert np.all( value[~nulls.values] == test_array[~nulls.values])
def test_get_data_as_dicts(): for station_id, sample_data in test_data.items(): elements = list(sample_data.keys()) with test_util.mocked_urls('ncdc/ghcnd/%s.dly' % station_id): station_data = ghcn_daily.get_data(station_id, elements=elements) for element_id, element_test_data in sample_data.items(): element_dict = station_data[element_id] for date, test_value in element_test_data.items(): value_dict = element_dict[date] values = [ value_dict.get(v) for v in ['value', 'mflag', 'qflag', 'sflag'] ] value = np.array(values, dtype=object) test_array = np.array(test_value, dtype=value.dtype) nulls = pandas.isnull(value) assert np.all(pandas.isnull(test_array) == nulls) assert np.all(value[~nulls] == test_array[~nulls])