3636 handler = logging .StreamHandler ()
3737 handler .setFormatter (logging .Formatter ('%(levelname)s:%(name)s:%(message)s' ))
3838 logger .addHandler (handler )
39- logger .setLevel (logging .DEBUG )
39+
40+ _CLOUD_RUN_SERVICE = os .getenv ('K_SERVICE' ) or os .getenv ('GOOGLE_CLOUD_PROJECT' )
41+ logger .setLevel (logging .ERROR if _CLOUD_RUN_SERVICE else logging .DEBUG )
42+
43+ def log_progress (message : str ) -> None :
44+ level = logging .ERROR if _CLOUD_RUN_SERVICE else logging .INFO
45+ logger .log (level , message )
4046
4147DEFAULT_CENTER_LON = - 122.09261814845487
4248DEFAULT_CENTER_LAT = 47.60464601773639
@@ -1130,9 +1136,16 @@ def fetch_weather_history(lat: float, lon: float, start_date: datetime, end_date
11301136 results .append (result )
11311137 except Exception :
11321138 logger .exception ("NDVI worker failed for index %s" , idx )
1133- status_text .text (
1134- f"Processing { completed } /{ len (row_tuples )} : { df .iloc [idx ]['datetime' ].strftime ('%Y-%m-%d' )} "
1135- )
1139+ scene_info = df .iloc [idx ]
1140+ scene_id = scene_info .get ('id' ) if hasattr (scene_info , 'get' ) else getattr (scene_info , 'id' , None )
1141+ date_value = scene_info .get ('datetime' ) if hasattr (scene_info , 'get' ) else getattr (scene_info , 'datetime' , None )
1142+ date_label = date_value .strftime ('%Y-%m-%d' ) if hasattr (date_value , 'strftime' ) else str (date_value )
1143+ message = f"Processing scene { completed } /{ len (row_tuples )} "
1144+ if scene_id :
1145+ message += f" ({ scene_id } )"
1146+ message += f": { date_label } "
1147+ status_text .text (message )
1148+ log_progress (message )
11361149 progress_bar .progress (completed / len (row_tuples ))
11371150 except Exception :
11381151 logger .exception ("Parallel NDVI processing failed; falling back to sequential execution" )
@@ -1142,9 +1155,16 @@ def fetch_weather_history(lat: float, lon: float, start_date: datetime, end_date
11421155 logger .info ("Parallel NDVI returned no results; retrying sequential execution" )
11431156 progress_bar .progress (0.0 )
11441157 for idx , row in enumerate (row_tuples ):
1145- status_text .text (
1146- f"Processing { idx + 1 } /{ len (row_tuples )} : { df .iloc [idx ]['datetime' ].strftime ('%Y-%m-%d' )} "
1147- )
1158+ scene_info = df .iloc [idx ]
1159+ scene_id = scene_info .get ('id' ) if hasattr (scene_info , 'get' ) else getattr (scene_info , 'id' , None )
1160+ date_value = scene_info .get ('datetime' ) if hasattr (scene_info , 'get' ) else getattr (scene_info , 'datetime' , None )
1161+ date_label = date_value .strftime ('%Y-%m-%d' ) if hasattr (date_value , 'strftime' ) else str (date_value )
1162+ message = f"Processing scene { idx + 1 } /{ len (row_tuples )} "
1163+ if scene_id :
1164+ message += f" ({ scene_id } )"
1165+ message += f": { date_label } "
1166+ status_text .text (message )
1167+ log_progress (message )
11481168 result = worker (row )
11491169 if result :
11501170 results .append (result )
0 commit comments