@@ -223,15 +223,10 @@ def get_two_closest_stray_light(level0_file, session=None, max_distance: timedel
223223 text ("second" ), File .date_obs , level0_file .date_obs )))
224224 .filter (File .file_type == model_type )
225225 .filter (File .observatory == level0_file .observatory )
226- .filter (File .state == "created" )
227- .filter (File .file_version .not_like ("v%" ))) #filters out "v0a".
226+ .filter (File .state == "created" ))
228227 if max_distance :
229228 best_models = best_models .filter (dt < max_distance .total_seconds ())
230- highest_version = best_models .order_by (File .file_version ).first ()
231- if highest_version is None :
232- return None , None
233- highest_version = highest_version [0 ].file_version
234- best_models = best_models .filter (File .file_version == highest_version ).order_by (dt .asc ()).limit (2 ).all ()
229+ best_models = best_models .order_by (dt .asc ()).limit (2 ).all ()
235230 if len (best_models ) < 2 :
236231 return None , None
237232 # Drop the dt values
@@ -246,17 +241,13 @@ def get_two_best_stray_light(level0_file, session=None):
246241 before_model = (session .query (File )
247242 .filter (File .file_type == model_type )
248243 .filter (File .observatory == level0_file .observatory )
249- .filter (File .level == '1' )
250244 .filter (File .date_obs < level0_file .date_obs )
251- .filter (File .file_version .not_like ("v%" )) #filters out "v0a".
252- .order_by (File .file_version .desc (), File .date_obs .desc ()).first ())
245+ .order_by (File .date_obs .desc ()).first ())
253246 after_model = (session .query (File )
254247 .filter (File .file_type == model_type )
255248 .filter (File .observatory == level0_file .observatory )
256- .filter (File .level == '1' )
257249 .filter (File .date_obs > level0_file .date_obs )
258- .filter (File .file_version .not_like ("v%" )) #filters out "v0a".
259- .order_by (File .file_version .desc (), File .date_obs .asc ()).first ())
250+ .order_by (File .date_obs .asc ()).first ())
260251 if before_model is None or after_model is None :
261252 # We're waiting for the scheduler to fill in here and tell us what's what
262253 return None , None
@@ -285,6 +276,15 @@ def get_two_best_stray_light(level0_file, session=None):
285276 return None , None
286277
287278
279+ def get_first_last_stray_light (session ):
280+ dates = (session .query (func .min (File .date_obs ), func .max (File .date_obs ))
281+ .where (File .file_type .like ('S%' )).
282+ where (File .state == 'created' )).all ()
283+ if len (dates ) == 0 :
284+ return datetime (1900 , 1 , 1 ), datetime (2900 , 1 , 1 )
285+ return dates [0 ]
286+
287+
288288def get_quartic_model_paths (level0_files , pipeline_config : dict , session = None ):
289289 # Get all models, in reverse-chronological order
290290 models = (session .query (File )
@@ -446,6 +446,7 @@ def level1_early_process_flow(flow_id: int | list[int], pipeline_config_path=Non
446446@task (cache_policy = NO_CACHE )
447447def level1_late_query_ready_files (session , pipeline_config : dict , reference_time = None , max_n = 9e99 ):
448448 logger = get_run_logger ()
449+ start_date , end_date = get_first_last_stray_light (session )
449450 parent = aliased (File )
450451 child = aliased (File )
451452 child_exists_subquery = (session .query (parent )
@@ -459,6 +460,8 @@ def level1_late_query_ready_files(session, pipeline_config: dict, reference_time
459460 .filter (File .level == "1" )
460461 .filter (File .state .in_ (["created" , "progressed" ]))
461462 .filter (~ child_exists_subquery )
463+ .filter (File .date_obs >= start_date )
464+ .filter (File .date_obs <= end_date )
462465 .order_by (File .date_obs .desc ()).all ())
463466
464467 distortion_paths = get_distortion_paths (ready , pipeline_config , session )
0 commit comments