Skip to content

Commit 002127f

Browse files
committed
update pandas .at to .loc indexing
1 parent d667f5d commit 002127f

2 files changed

Lines changed: 39 additions & 37 deletions

File tree

femmt/optimization/io.py

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ def objective(trial: optuna.Trial, config: InductorOptimizationDTO, target_and_f
189189
(available_height + config.insulations.primary_to_primary) / (litz_wire_diameter + config.insulations.primary_to_primary))
190190
max_turns = possible_number_turns_per_row * possible_number_turns_per_column
191191
if max_turns < 1:
192-
logger.warning("Max. number of turns per window < 1")
192+
logger.debug("Max. number of turns per window < 1")
193193
return float('nan'), float('nan')
194194

195195
turns = trial.suggest_int('turns', 1, max_turns)
@@ -223,7 +223,7 @@ def objective(trial: optuna.Trial, config: InductorOptimizationDTO, target_and_f
223223
try:
224224
reluctance_output: ReluctanceModelOutput = InductorOptimization.ReluctanceModel.single_reluctance_model_simulation(reluctance_model_input)
225225
except ValueError as e:
226-
logger.info("bot air gap: No fitting air gap length")
226+
logger.debug("bot air gap: No fitting air gap length")
227227
return float('nan'), float('nan')
228228

229229
trial.set_user_attr('p_winding', reluctance_output.p_winding)
@@ -346,7 +346,7 @@ def start_proceed_study(config: InductorOptimizationDTO, number_trials: int | No
346346
:type sampler: optuna.sampler-object
347347
"""
348348
if os.path.exists(f"{config.inductor_optimization_directory}/{config.inductor_study_name}.sqlite3"):
349-
print("Existing study found. Proceeding.")
349+
logger.info("Existing study found. Proceeding.")
350350

351351
target_and_fixed_parameters = InductorOptimization.ReluctanceModel.calculate_fix_parameters(config)
352352

@@ -394,25 +394,26 @@ def start_proceed_study(config: InductorOptimizationDTO, number_trials: int | No
394394
number_trials = target_number_trials - len(study_in_memory.trials)
395395
study_in_memory.optimize(func, n_trials=number_trials, show_progress_bar=True)
396396
study_in_storage.add_trials(study_in_memory.trials[-number_trials:])
397-
print(f"Finished {number_trials} trials.")
398-
print(f"current time: {datetime.datetime.now()}")
397+
logger.info(f"Finished {number_trials} trials.")
398+
logger.info(f"current time: {datetime.datetime.now()}")
399399
else:
400-
print(f"Study has already {len(study_in_storage.trials)} trials, and target is {target_number_trials} trials.")
400+
logger.info(f"Study has already {len(study_in_storage.trials)} trials, and target is {target_number_trials} trials.")
401401

402402
else:
403403
# normal simulation with number_trials
404404
study_in_memory = optuna.create_study(directions=['minimize', 'minimize'], study_name=config.inductor_study_name, sampler=sampler)
405-
print(f"Sampler is {study_in_memory.sampler.__class__.__name__}")
405+
logger.info(f"Sampler is {study_in_memory.sampler.__class__.__name__}")
406406
study_in_memory.add_trials(study_in_storage.trials)
407407
study_in_memory.optimize(func, n_trials=number_trials, show_progress_bar=True)
408408

409409
study_in_storage.add_trials(study_in_memory.trials[-number_trials:])
410-
print(f"Finished {number_trials} trials.")
411-
print(f"current time: {datetime.datetime.now()}")
410+
logger.info(f"Finished {number_trials} trials.")
411+
logger.info(f"current time: {datetime.datetime.now()}")
412412
InductorOptimization.ReluctanceModel.save_config(config)
413+
InductorOptimization.ReluctanceModel.show_study_results(config, show_results=False)
413414

414415
@staticmethod
415-
def show_study_results(config: InductorOptimizationDTO) -> None:
416+
def show_study_results(config: InductorOptimizationDTO, show_results: bool = False) -> None:
416417
"""Show the results of a study.
417418
418419
A local .html file is generated under config.working_directory to store the interactive plotly plots on disk.
@@ -427,7 +428,8 @@ def show_study_results(config: InductorOptimizationDTO) -> None:
427428
fig.update_layout(title=f"{config.inductor_study_name} <br><sup>{config.inductor_optimization_directory}</sup>")
428429
fig.write_html(f"{config.inductor_optimization_directory}/{config.inductor_study_name}"
429430
f"_{datetime.datetime.now().isoformat(timespec='minutes')}.html")
430-
fig.show()
431+
if show_results:
432+
fig.show()
431433

432434
@staticmethod
433435
def save_config(config: InductorOptimizationDTO) -> None:
@@ -468,7 +470,7 @@ def study_to_df(config: InductorOptimizationDTO) -> pd.DataFrame:
468470
"""
469471
database_url = f'sqlite:///{config.inductor_optimization_directory}/{config.inductor_study_name}.sqlite3'
470472
if os.path.isfile(database_url.replace('sqlite:///', '')):
471-
print("Existing study found.")
473+
logger.info("Existing study found.")
472474
else:
473475
raise ValueError(f"Can not find database: {database_url}")
474476
loaded_study = optuna.load_study(study_name=config.inductor_study_name, storage=database_url)
@@ -624,7 +626,7 @@ def fem_simulations_from_reluctance_df(reluctance_df: pd.DataFrame, config: Indu
624626
target_and_fix_parameters.working_directories.fem_simulation_results_directory,
625627
f'case_{index}.json')
626628
if os.path.exists(destination_json_file):
627-
print(f'case_{index}.json already exists. Skip simulation.')
629+
logger.info(f'case_{index}.json already exists. Skip simulation.')
628630
else:
629631

630632
try:
@@ -658,10 +660,10 @@ def fem_simulations_from_reluctance_df(reluctance_df: pd.DataFrame, config: Indu
658660
# fem simulation here
659661
fem_output = InductorOptimization.FemSimulation.single_fem_simulation(fem_input, False)
660662

661-
reluctance_df.at[index, 'fem_inductance'] = fem_output.fem_inductance
662-
reluctance_df.at[index, 'fem_p_loss_winding'] = fem_output.fem_p_loss_winding
663-
reluctance_df.at[index, 'fem_eddy_core'] = fem_output.fem_eddy_core
664-
reluctance_df.at[index, 'fem_core'] = fem_output.fem_core_total
663+
reluctance_df.loc[index, 'fem_inductance'] = fem_output.fem_inductance
664+
reluctance_df.loc[index, 'fem_p_loss_winding'] = fem_output.fem_p_loss_winding
665+
reluctance_df.loc[index, 'fem_eddy_core'] = fem_output.fem_eddy_core
666+
reluctance_df.loc[index, 'fem_core'] = fem_output.fem_core_total
665667

666668
# copy result files to result-file folder
667669
source_json_file = os.path.join(
@@ -672,10 +674,10 @@ def fem_simulations_from_reluctance_df(reluctance_df: pd.DataFrame, config: Indu
672674

673675
except Exception as e:
674676
print(e)
675-
reluctance_df.at[index, 'fem_inductance'] = None
676-
reluctance_df.at[index, 'fem_p_loss_winding'] = None
677-
reluctance_df.at[index, 'fem_eddy_core'] = None
678-
reluctance_df.at[index, 'fem_core'] = None
677+
reluctance_df.loc[index, 'fem_inductance'] = None
678+
reluctance_df.loc[index, 'fem_p_loss_winding'] = None
679+
reluctance_df.loc[index, 'fem_eddy_core'] = None
680+
reluctance_df.loc[index, 'fem_core'] = None
679681
return reluctance_df
680682

681683
@staticmethod

femmt/optimization/sto.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -850,13 +850,13 @@ def fem_simulations_from_reluctance_df(reluctance_df: pd.DataFrame, config: StoS
850850

851851
fem_output = StackedTransformerOptimization.FemSimulation.single_fem_simulation(fem_input, show_visual_outputs=show_visual_outputs)
852852

853-
reluctance_df.at[index, 'n'] = fem_output.n_conc
854-
reluctance_df.at[index, 'l_s_conc'] = fem_output.l_s_conc
855-
reluctance_df.at[index, 'l_h_conc'] = fem_output.l_h_conc
856-
reluctance_df.at[index, 'p_loss_winding_1'] = fem_output.p_loss_winding_1
857-
reluctance_df.at[index, 'p_loss_winding_2'] = fem_output.p_loss_winding_2
858-
reluctance_df.at[index, 'eddy_core'] = fem_output.eddy_core
859-
reluctance_df.at[index, 'core'] = fem_output.core
853+
reluctance_df.loc[index, 'n'] = fem_output.n_conc
854+
reluctance_df.loc[index, 'l_s_conc'] = fem_output.l_s_conc
855+
reluctance_df.loc[index, 'l_h_conc'] = fem_output.l_h_conc
856+
reluctance_df.loc[index, 'p_loss_winding_1'] = fem_output.p_loss_winding_1
857+
reluctance_df.loc[index, 'p_loss_winding_2'] = fem_output.p_loss_winding_2
858+
reluctance_df.loc[index, 'eddy_core'] = fem_output.eddy_core
859+
reluctance_df.loc[index, 'core'] = fem_output.core
860860

861861
# copy result files to result-file folder
862862
source_json_file = os.path.join(
@@ -867,13 +867,13 @@ def fem_simulations_from_reluctance_df(reluctance_df: pd.DataFrame, config: StoS
867867

868868
except Exception as e:
869869
print(f"The following exception was raised: {e}")
870-
reluctance_df.at[index, 'n'] = None
871-
reluctance_df.at[index, 'l_s_conc'] = None
872-
reluctance_df.at[index, 'l_h_conc'] = None
873-
reluctance_df.at[index, 'p_loss_winding_1'] = None
874-
reluctance_df.at[index, 'p_loss_winding_2'] = None
875-
reluctance_df.at[index, 'eddy_core'] = None
876-
reluctance_df.at[index, 'core'] = None
870+
reluctance_df.loc[index, 'n'] = None
871+
reluctance_df.loc[index, 'l_s_conc'] = None
872+
reluctance_df.loc[index, 'l_h_conc'] = None
873+
reluctance_df.loc[index, 'p_loss_winding_1'] = None
874+
reluctance_df.loc[index, 'p_loss_winding_2'] = None
875+
reluctance_df.loc[index, 'eddy_core'] = None
876+
reluctance_df.loc[index, 'core'] = None
877877
return reluctance_df
878878

879879
@staticmethod
@@ -1015,8 +1015,8 @@ def fem_logs_to_df(reluctance_df: pd.DataFrame, fem_results_folder_path: str) ->
10151015
:rtype: pd.DataFrame
10161016
"""
10171017
files_in_folder = [f for f in os.listdir(fem_results_folder_path) if os.path.isfile(os.path.join(fem_results_folder_path, f))]
1018-
print(files_in_folder)
1019-
print(len(files_in_folder))
1018+
logger.info(files_in_folder)
1019+
logger.info(len(files_in_folder))
10201020

10211021
# add new columns to the dataframe, init values with None
10221022
reluctance_df['fem_inductance'] = None

0 commit comments

Comments
 (0)