Skip to content

Commit d0b8a27

Browse files
committed
refactor(config.xlsx): expt_input_voltage -> expt_excitation_voltage
- CLI: read new column name; fallback to legacy if absent - ThrustPostProcess __main__: support new column with legacy fallback - Wire through call sites to use expt_excitation_voltage
1 parent bba59fa commit d0b8a27

File tree

3 files changed

+43
-14
lines changed

3 files changed

+43
-14
lines changed

examples/config.xlsx

10 Bytes
Binary file not shown.

src/static_fire_toolkit/cli.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,35 @@ def _load_config(execution_root: Path, expt_name: str | None) -> dict[str, Any]:
5454
"totalmass [g]",
5555
"Nozzlediameter [mm]",
5656
"segment",
57-
"expt_input_voltage [V]",
57+
# Accept both legacy and new column names for excitation voltage
58+
# either "expt_excitation_voltage [V]" or legacy "expt_input_voltage [V]"
59+
"expt_excitation_voltage [V]",
5860
"expt_resistance [Ohm]",
5961
]
6062
missing = [col for col in required_columns if col not in config.columns]
63+
# Backward-compat: if the only missing item is the new excitation voltage column,
64+
# but the legacy column exists, treat as satisfied.
65+
if (
66+
"expt_excitation_voltage [V]" in missing
67+
and "expt_input_voltage [V]" in config.columns
68+
):
69+
missing = [col for col in missing if col != "expt_excitation_voltage [V]"]
6170
if missing:
6271
raise ValueError(f"Missing columns in configuration: {missing}")
6372

73+
# Backward-compatible read for excitation voltage
74+
if "expt_excitation_voltage [V]" in config.columns:
75+
expt_excitation_voltage = config["expt_excitation_voltage [V]"][idx]
76+
elif "expt_input_voltage [V]" in config.columns:
77+
expt_excitation_voltage = config["expt_input_voltage [V]"][idx]
78+
else:
79+
raise ValueError(
80+
"Missing excitation voltage column in configuration: expected 'expt_excitation_voltage [V]' or legacy 'expt_input_voltage [V]'"
81+
)
82+
6483
return {
6584
"expt_file_name": config["expt_file_name"][idx],
66-
"expt_input_voltage": config["expt_input_voltage [V]"][idx],
85+
"expt_excitation_voltage": expt_excitation_voltage,
6786
"expt_resistance": config["expt_resistance [Ohm]"][idx],
6887
"grain": {
6988
"OD": float(config["Outerdiameter [mm]"][idx]),
@@ -130,7 +149,7 @@ def cmd_thrust(args: argparse.Namespace) -> None:
130149
proc = ThrustPostProcess(
131150
data_raw=thrust_raw,
132151
file_name=cfg["expt_file_name"],
133-
input_voltage=cfg["expt_input_voltage"],
152+
excitation_voltage=cfg["expt_excitation_voltage"],
134153
resistance=cfg["expt_resistance"],
135154
execution_root=str(exec_root),
136155
)
@@ -209,7 +228,7 @@ def cmd_process(args: argparse.Namespace) -> None:
209228
thrust_proc = ThrustPostProcess(
210229
data_raw=thrust_raw,
211230
file_name=cfg["expt_file_name"],
212-
input_voltage=cfg["expt_input_voltage"],
231+
excitation_voltage=cfg["expt_excitation_voltage"],
213232
resistance=cfg["expt_resistance"],
214233
execution_root=str(exec_root),
215234
)

src/static_fire_toolkit/post_process/thrust_post_processing.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def __init__(
5656
self,
5757
data_raw: pd.DataFrame,
5858
file_name: str,
59-
input_voltage: float,
59+
excitation_voltage: float,
6060
resistance: float,
6161
execution_root: str | None = None,
6262
) -> None:
@@ -65,7 +65,7 @@ def __init__(
6565
Args:
6666
data_raw (pd.DataFrame): Raw data containing time and thrust measurements.
6767
file_name (str): File name identifier.
68-
input_voltage (float): Input voltage used during measurement.
68+
excitation_voltage (float): Excitation voltage used during measurement.
6969
resistance (float): Resistance value used during measurement.
7070
execution_root (str | None): Base directory for logs/ and results/*.
7171
If None, defaults to current working directory.
@@ -157,7 +157,7 @@ def __init__(
157157
].copy()
158158
self._data_raw.columns = ["time", "thrust"]
159159
self._file_name: str = file_name
160-
self._input_voltage: float = input_voltage
160+
self._excitation_voltage: float = excitation_voltage
161161
self._resistance: float = resistance
162162

163163
self._logger.info("0. Initialization complete.")
@@ -227,7 +227,7 @@ def _convert_voltage_to_thrust(self, data: pd.DataFrame) -> pd.DataFrame:
227227
data["thrust"] = (
228228
data["thrust"]
229229
* 1000
230-
/ (self._sensitivity_mv_per_v * self._input_voltage)
230+
/ (self._sensitivity_mv_per_v * self._excitation_voltage)
231231
* self._rated_capacity_kgf
232232
* self._g
233233
/ (
@@ -662,10 +662,12 @@ def _thrust_plot(self) -> None:
662662
)
663663

664664
ax.annotate(
665-
"Impulse " + str(round(self._impulse, 2)) + " Ns\n"
666-
"Input Voltage " + str(round(self._input_voltage, 2)) + " V\n"
667-
"Resistance " + str(round(self._resistance, 2)) + r" $\Omega$",
668-
xy=(0.72, 0.85),
665+
"Impulse " + str(round(self._impulse, 2)) + " Ns\n"
666+
"Excitation Voltage " + str(round(self._excitation_voltage, 2)) + " V\n"
667+
"Resistance "
668+
+ str(round(self._resistance, 2))
669+
+ r" $\Omega$",
670+
xy=(0.67, 0.85),
669671
xycoords="axes fraction",
670672
size=20,
671673
font="Arial",
@@ -733,7 +735,15 @@ def run(self) -> pd.DataFrame:
733735
config = pd.read_excel(config_path, sheet_name=0, header=0, index_col=0)
734736
idx = len(config) - 1
735737
expt_file_name = config["expt_file_name"][idx]
736-
expt_input_voltage = config["expt_input_voltage [V]"][idx]
738+
# Backward-compatible: read excitation voltage from new or legacy column
739+
if "expt_excitation_voltage [V]" in config.columns:
740+
expt_excitation_voltage = config["expt_excitation_voltage [V]"][idx]
741+
elif "expt_input_voltage [V]" in config.columns:
742+
expt_excitation_voltage = config["expt_input_voltage [V]"][idx]
743+
else:
744+
raise ValueError(
745+
"Missing excitation voltage column: expected 'expt_excitation_voltage [V]' or legacy 'expt_input_voltage [V]'"
746+
)
737747
expt_resistance = config["expt_resistance [Ohm]"][idx]
738748

739749
print(f"Loaded configuration for experiment: {expt_file_name}")
@@ -764,6 +774,6 @@ def run(self) -> pd.DataFrame:
764774
print("Successfully loaded input data file.")
765775

766776
process = ThrustPostProcess(
767-
thrust_data, expt_file_name, expt_input_voltage, expt_resistance
777+
thrust_data, expt_file_name, expt_excitation_voltage, expt_resistance
768778
)
769779
_ = process.run()

0 commit comments

Comments
 (0)