Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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])
Ejemplo n.º 3
0
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])
Ejemplo n.º 4
0
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])
Ejemplo n.º 5
0
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])