@@ -108,6 +108,14 @@ def initialize(
108108 self .max_daily_number_per_month_maintenance = dict_ [
109109 "max_daily_number_per_month_maintenance"
110110 ]
111+
112+ if "maintenance_day_of_week" in dict_ :
113+ self .maintenance_day_of_week = [int (el ) for el in dict_ [
114+ "maintenance_day_of_week"
115+ ]]
116+ else :
117+ self .maintenance_day_of_week = np .arange (5 )
118+
111119 super ().initialize (
112120 order_backend_loads ,
113121 order_backend_prods ,
@@ -133,7 +141,6 @@ def _sample_maintenance(self):
133141 ########
134142 # new method to introduce generated maintenance
135143 self .maintenance = self ._generate_maintenance () #
136-
137144 ##########
138145 # same as before in GridStateFromFileWithForecasts
139146 GridStateFromFileWithForecastsWithMaintenance ._fix_maintenance_format (self )
@@ -171,7 +178,12 @@ def _generate_matenance_static(name_line,
171178 daily_proba_per_month_maintenance ,
172179 max_daily_number_per_month_maintenance ,
173180 space_prng ,
181+ maintenance_day_of_week = None
174182 ):
183+ if maintenance_day_of_week is None :
184+ # new in grid2op 1.10.3
185+ maintenance_day_of_week = np .arange (5 )
186+
175187 # define maintenance dataframe with size (nbtimesteps,nlines)
176188 columnsNames = name_line
177189 nbTimesteps = n_
@@ -203,8 +215,6 @@ def _generate_matenance_static(name_line,
203215 datelist = datelist [:- 1 ]
204216
205217 n_lines_maintenance = len (line_to_maintenance )
206-
207- _24_h = timedelta (seconds = 86400 )
208218 nb_rows = int (86400 / time_interval .total_seconds ())
209219 selected_rows_beg = int (
210220 maintenance_starting_hour * 3600 / time_interval .total_seconds ()
@@ -220,7 +230,7 @@ def _generate_matenance_static(name_line,
220230 maxDailyMaintenance = - 1
221231 for nb_day_since_beg , this_day in enumerate (datelist ):
222232 dayOfWeek = this_day .weekday ()
223- if dayOfWeek < 5 : # only maintenance starting on working days
233+ if dayOfWeek in maintenance_day_of_week :
224234 month = this_day .month
225235
226236 maintenance_me = np .zeros ((nb_rows , nb_line_maint ))
@@ -279,5 +289,9 @@ def _generate_maintenance(self):
279289 self .maintenance_ending_hour ,
280290 self .daily_proba_per_month_maintenance ,
281291 self .max_daily_number_per_month_maintenance ,
282- self .space_prng
292+ self .space_prng ,
293+ self .maintenance_day_of_week
283294 )
295+
296+ def regenerate_with_new_seed (self ):
297+ self ._sample_maintenance ()
0 commit comments