@@ -116,26 +116,6 @@ def get_variables_by_site_code(self, site_code):
116116 q = self ._session .query (Variables ).filter (Variables .VariableID .in_ (var_ids ))
117117 return q .all ()
118118
119- # Data Value Methods
120- def get_values (self , series_id = None ):
121- '''
122-
123- :param series_id: Series id
124- :return: pandas dataframe
125- '''
126-
127- setSchema (self ._session_factory .engine )
128- q = self .read ._session .query (TimeSeriesResultValues )
129- if series_id :
130- q = q .filter_by (ResultID = series_id )
131- q = q .order_by (TimeSeriesResultValues .ValueDateTime )
132- query = q .statement .compile (dialect = self ._session_factory .engine .dialect )
133- data = pd .read_sql_query (sql = query ,
134- con = self ._session_factory .engine ,
135- params = query .params )
136- data .set_index (data ['valuedatetime' ], inplace = True )
137- return data
138-
139119# Series Catalog methods
140120 def get_series_by_site (self , site_id ):
141121 # try:
@@ -359,42 +339,55 @@ def get_series_from_filter(self):
359339 # Pass in probably a Series object, match it against the database
360340 pass
361341
362- #
342+
363343 #Data Value Methods
364344 def get_values (self , series_id = None ):
365- '''
366- :param series_id: Series id
345+ """
346+ :param series_id:
367347 :return: pandas dataframe
368- '''
369- #series= self.get_series_by_id(series_id)
370- # if series:
371- # q = self._edit_session.query(DataValue).filter_by(
372- # site_id=series.site_id,
373- # variable_id=series.variable_id,
374- # method_id=series.method_id,
375- # source_id=series.source_id,
376- # quality_control_level_id=series.quality_control_level_id)
377- #
378- # query=q.statement.compile(dialect=self._session_factory.engine.dialect)
379- # data= pd.read_sql_query(sql= query,
380- # con = self._session_factory.engine,
381- # params = query.params )
382- # #return data.set_index(data['LocalDateTime'])
383- # return data
384- # else:
385- # return None
348+ """
349+ # see get_annotations_by_result around line 850
386350
387351 q = self .read ._session .query (TimeSeriesResultValues )
388352 if series_id :
389- q = q .filter_by (ResultID = series_id )
390- q = q .order_by (TimeSeriesResultValues .ValueDateTime )
353+ q = q .filter_by (ResultID = series_id )
354+ q = q .order_by (TimeSeriesResultValues .ValueDateTime )
391355 query = q .statement .compile (dialect = self ._session_factory .engine .dialect )
392356 data = pd .read_sql_query (sql = query ,
393357 con = self ._session_factory .engine ,
394358 params = query .params )
395359 data .set_index (data ['valuedatetime' ], inplace = True )
360+
361+ # if series_id:
362+ # anno = self.get_annotations_by_result(series_id)
363+ # q = pd.merge(data, anno, how="left", on='valueid', indicator=False)
364+ # data.applymap(self.merge_annotation_with_timeseries_result)
365+
366+ # if len(anno):
367+ # # data.valueid.apply(self.merge_annotation_with_timeseries_result)
368+ # # data.applymap(self.merge_annotation_with_timeseries_result)
369+ # self.merge_annotation_with_timeseries_result(data, anno)
370+
371+
372+
396373 return data
397374
375+ # df.drop_duplicates(dup_cols, keep='last', inplace=True)
376+ # newdf = pd.merge(df, pd.read_sql(query, engine), how='left', on=dup_cols, indicator=True)
377+ # newdf = newdf[newdf['_merge'] == 'left_only']
378+ # newdf.drop(['_merge'], axis=1, inplace=True)
379+ # return df[df['valuedatetime'].isin(newdf['valuedatetime'])]
380+
381+ # def merge_annotation_with_timeseries_result(self, x):
382+ # print x
383+ #
384+ # # return x
385+ # return 123
386+ def merge_annotation_with_timeseries_result (self , data , anno ):
387+
388+ print 123
389+ return
390+
398391 def get_all_values_df (self ):
399392
400393 """
@@ -877,17 +870,20 @@ def get_all_annotations(self):
877870 return self .read .getAnnotations (type = None )
878871
879872 def get_annotations_by_result (self , resultid ):
880- setSchema (self ._session_factory .engine )
873+ # setSchema(self._session_factory.engine)
881874
882875 # ids = [x[0] for x in self.read._session.query(TimeSeriesResultValues.ValueID)\
883876 # .filter(TimeSeriesResultValues.ResultID == resultid).all()]
884877 # q = self.read._session.query(TimeSeriesResultValueAnnotations)\
885878 # .filter(TimeSeriesResultValueAnnotations.ValueID.in_(ids)).all()
886879
887- q = self .read ._session .query (TimeSeriesResultValueAnnotations .AnnotationID , TimeSeriesResultValueAnnotations .ValueID ,
888- TimeSeriesResultValues .ResultID , TimeSeriesResultValues .ValueDateTime )\
880+ resultid = int (resultid )
881+
882+ q = self .read ._session .query (TimeSeriesResultValueAnnotations .AnnotationID , TimeSeriesResultValueAnnotations .ValueID ,
883+ TimeSeriesResultValues .ResultID , TimeSeriesResultValues .ValueDateTime , Annotations .AnnotationCode )\
889884 .filter (TimeSeriesResultValues .ResultID == resultid )\
890- .filter (TimeSeriesResultValueAnnotations .ValueID == TimeSeriesResultValues .ValueID )
885+ .filter (TimeSeriesResultValueAnnotations .ValueID == TimeSeriesResultValues .ValueID )\
886+ .filter (Annotations .AnnotationID == TimeSeriesResultValueAnnotations .AnnotationID )
891887
892888 query = q .statement .compile (dialect = self ._session_factory .engine .dialect )
893889 data = pd .read_sql_query (sql = query , con = self ._session_factory .engine ,
0 commit comments