compton 4 лет назад
Родитель
Сommit
7f11e9fc53
2 измененных файлов с 17 добавлено и 3 удалено
  1. 15 2
      src/compton_combiner.py
  2. 2 1
      src/compton_filter.py

+ 15 - 2
src/compton_combiner.py

@@ -51,7 +51,11 @@ class RunsDBHandler():
             if range[1] is not None:
             if range[1] is not None:
                 cond += f" AND run <= {range[1]} "
                 cond += f" AND run <= {range[1]} "
         elif isinstance(range[0], datetime):
         elif isinstance(range[0], datetime):
-            cond = f" AND stoptime BETWEEN %s AND %s"
+            cond = f" AND starttime >= %s "
+            if range[1] is not None:
+                cond += " AND stoptime <= %s"
+            else:
+                range = (range[0], )
             
             
         sql_query = f"""
         sql_query = f"""
         SELECT 
         SELECT 
@@ -370,6 +374,7 @@ def main():
     parser.add_argument('--csv', action = 'store_true', help = 'Save csv file with data or not')
     parser.add_argument('--csv', action = 'store_true', help = 'Save csv file with data or not')
     parser.add_argument('--clbrdb', action = 'store_true', help = 'Update Compton_run_avg clbrdb or not')
     parser.add_argument('--clbrdb', action = 'store_true', help = 'Update Compton_run_avg clbrdb or not')
     parser.add_argument('--pics_folder', help = 'Path to the directory for saving the pictures')
     parser.add_argument('--pics_folder', help = 'Path to the directory for saving the pictures')
+    parser.add_argument('--only_last', action = 'store_true', help = 'Compute values of the last (in Compton_run_avg clbrdb) and new points only')
     
     
     args = parser.parse_args()
     args = parser.parse_args()
     # logging.info(f"Arguments: season: {args.season}, config {args.config}")
     # logging.info(f"Arguments: season: {args.season}, config {args.config}")
@@ -378,15 +383,23 @@ def main():
     parser.read(args.config);
     parser.read(args.config);
     
     
     rdb = RunsDBHandler(**parser['cmdruns'])
     rdb = RunsDBHandler(**parser['cmdruns'])
+    clbrdb = CalibrdbHandler(**parser['clbrDB'])
     
     
     idx = SEASONS['name'].index(args.season)
     idx = SEASONS['name'].index(args.season)
     runs_range = (SEASONS['start_run'][idx], SEASONS['start_run'][idx+1])
     runs_range = (SEASONS['start_run'][idx], SEASONS['start_run'][idx+1])
+    
+    if args.only_last:
+        res_avg = clbrdb.load_table('Misc', 'RunHeader', 'Compton_run_avg', num_last_rows = 1)
+        if len(res_avg[0]) != 0:
+            begintime = res_avg[0][0][res_avg[1].index("begintime")]
+            runs_range = (begintime, None)
+    
     res_rdb = rdb.load_tables(runs_range)
     res_rdb = rdb.load_tables(runs_range)
     runs_df = pd.DataFrame(res_rdb[0], columns=res_rdb[1])
     runs_df = pd.DataFrame(res_rdb[0], columns=res_rdb[1])
     
     
     tdlt0 = timedelta(days=2)
     tdlt0 = timedelta(days=2)
     time_range = (runs_df.starttime.min() - tdlt0, runs_df.stoptime.max() + tdlt0)
     time_range = (runs_df.starttime.min() - tdlt0, runs_df.stoptime.max() + tdlt0)
-    clbrdb = CalibrdbHandler(**parser['clbrDB'])
+    
     res_clbrdb = clbrdb.load_table('Misc', 'RunHeader', 'Compton_run', num_last_rows = None, timerange = time_range)
     res_clbrdb = clbrdb.load_table('Misc', 'RunHeader', 'Compton_run', num_last_rows = None, timerange = time_range)
     
     
     cb = Combiner(res_rdb, res_clbrdb)
     cb = Combiner(res_rdb, res_clbrdb)

+ 2 - 1
src/compton_filter.py

@@ -5,6 +5,7 @@ Script to fill calibration database with filtering slowdb compton measurements
 import argparse
 import argparse
 from configparser import ConfigParser
 from configparser import ConfigParser
 from datetime import datetime, timedelta, timezone
 from datetime import datetime, timedelta, timezone
+import sys
 from typing import Tuple, List, Dict, Union, Optional
 from typing import Tuple, List, Dict, Union, Optional
 import warnings
 import warnings
 import logging
 import logging
@@ -353,7 +354,7 @@ class CalibrdbHandler(PostgreSQLHandler):
     
     
 def main():
 def main():
     log_format = '[%(asctime)s] %(levelname)s: %(message)s'
     log_format = '[%(asctime)s] %(levelname)s: %(message)s'
-    logging.basicConfig(filename="compton_filter.log", format=log_format, level=logging.INFO)
+    logging.basicConfig(stream=sys.stdout, format=log_format, level=logging.INFO) #"filename=compton_filter.log"
     logging.info("Program started")
     logging.info("Program started")
     
     
     parser = argparse.ArgumentParser(description = 'Filter compton energy measurements from slowdb')
     parser = argparse.ArgumentParser(description = 'Filter compton energy measurements from slowdb')