コード例 #1
0
ファイル: pusher.py プロジェクト: hasithadkr7/data_layer
class Pusher:
    def __init__(self, session_creator):
        self.tms_operator = Timeseries(session_creator)

    def push_timeseries(self, meta_data, tms, force=False):
        tms_id = self.tms_operator.get_timeseries_id(meta_data)
        if tms_id is None:
            raise NoTimeseriesFound(
                'No timeseries id found for the given meta data', meta_data)
        return self.tms_operator.update_timeseries(tms_id, tms, force)

    def push_collection(self, meta_dic):
        # TODO
        pass
コード例 #2
0
ファイル: puller.py プロジェクト: hasithadkr7/data_layer
class Extractor:
    def __init__(self, session_creator):
        self.tms_operator = Timeseries(session_creator)

    def pull_timeseries(self, meta_data, start_dt, end_dt):
        tms_id = self.tms_operator.get_timeseries_id(meta_data)
        return self.tms_operator.get_timeseries(tms_id, start_dt, end_dt)

    def pull_collection(self, meta_dic):
        output_dic = {}
        for key in meta_dic.keys():
            output_dic[key] = self.pull_timeseries(meta_dic[key],
                                                   meta_dic[key]['from'],
                                                   meta_dic[key]['to'])
        return output_dic
コード例 #3
0
 def get_timeseries_adapter(self):
     db_config = self.input_config['db_config']
     db_engine = get_engine(host=db_config['host'],
                            port=db_config['port'],
                            user=db_config['user'],
                            password=db_config['password'],
                            db=db_config['db'])
     return Timeseries(get_sessionmaker(engine=db_engine))
コード例 #4
0
            run_date=run_date.strftime(DATE_FORMAT))
        rainfall_arr = read_rainfall(run_dir,
                                     rainfall_file_name)[0:TIME_INDEX.size]
        rainfall_df_acc = pd.DataFrame({
            'time': TIME_INDEX,
            'value': rainfall_arr
        }).set_index(keys='time')
        rainfall_df_inst = rainfall_df_acc.diff(axis=0)
        rainfall_df_inst.dropna(inplace=True)

        db_engine = get_engine(host=DB_CONFIG['host'],
                               port=DB_CONFIG['port'],
                               user=DB_CONFIG['user'],
                               password=DB_CONFIG['password'],
                               db=DB_CONFIG['db'])
        tms_adapter = Timeseries(get_sessionmaker(engine=db_engine))

        TMS_META['station_name'] = station['name_in_db']
        TMS_META['source'] = wrf_model['name_in_db']

        tmss = separate_rainfall_for_event_types(today, rainfall_df_inst)
        for tms in tmss:
            TMS_META['event_type'] = tms['event_type']
            tms_id = tms_adapter.get_timeseries_id(TMS_META)
            if tms_id is None:
                tms_id = tms_adapter.create_timeseries_id(
                    run_name=TMS_META['run_name'],
                    station={
                        'name': station['name_in_db'],
                        'id': station['id_in_db']
                    },
コード例 #5
0
ファイル: puller.py プロジェクト: hasithadkr7/data_layer
 def __init__(self, session_creator):
     self.tms_operator = Timeseries(session_creator)