API Reference
This section provides API documentation for OSeMOSYS-RDM’s Python modules.
Note
This API reference is auto-generated from docstrings. For more detailed usage, see the User Guide.
Core Modules
z_auxiliar_code
The main utility module containing core functions.
- src.workflow.z_auxiliar_code.obtain_structure_file(scenario_file, output_file, structure_file, num_timeslices)
Extract model structure from a scenario file.
- Parameters:
scenario_file – Path to the OSeMOSYS scenario file
output_file – Path for the output Excel file
structure_file – Path to the OSeMOSYS structure reference
num_timeslices – Number of time slices in the model
- Returns:
Dictionary of sets
- src.workflow.z_auxiliar_code.isolate_params(scenario_file)
Parse a scenario file and isolate parameters.
- Parameters:
scenario_file – Path to the scenario file
- Returns:
Tuple of (data_per_param dict, special_sets list)
- src.workflow.z_auxiliar_code.generate_df_per_param(scenario_name, data_per_param, num_timeslices)
Generate DataFrames for each parameter.
- Parameters:
scenario_name – Name of the scenario
data_per_param – Dictionary of parameter data
num_timeslices – Number of time slices
- Returns:
Tuple of (list_dataframes, dict_dataframes, parameters_without_values)
- src.workflow.z_auxiliar_code.run_osemosys(solver, output_dir, data_file, model_file, output_base)
Execute OSeMOSYS optimization.
- Parameters:
solver – Solver name (‘glpk’, ‘cbc’, ‘cplex’, ‘gurobi’)
output_dir – Directory for output files
data_file – Path to data file
model_file – Path to model formulation
output_base – Base name for output files
- src.workflow.z_auxiliar_code.data_processor_new(sol_file, structure_file, scenario, future, solver, params_to_print, output_format)
Process solver output into standardized format.
- Parameters:
sol_file – Path to solution file
structure_file – Path to model structure file
scenario – Scenario name
future – Future ID
solver – Solver used
params_to_print – DataFrame of parameters to export
output_format – ‘csv’ or ‘parquet’
Interpolation Functions
- src.workflow.z_auxiliar_code.interpolation_non_linear_final(time_list, value_list, multiplier, last_year, initial_year)
Non-linear interpolation to a modified final value. Rescales each annual delta by
m_new/m_original. For flat baselines (|m_original| < 1e-9) the function applies a small damped per-year increment to avoid the spurious linear ramp the original implementation produced.- Parameters:
time_list – List of years
value_list – List of base values
multiplier – Final value multiplier
last_year – Last year of analysis
initial_year – Year uncertainty begins
- Returns:
List of new values
- src.workflow.z_auxiliar_code.interpolation_multiplicative_final(time_list, value_list, final_multiplier, finyear, initial_year)
Shape-preserving perturbation. Multiplies each baseline point by a year- dependent ramp that grows linearly from 1.0 at
initial_yeartofinal_multiplieratfinyear(clamped to 1.0 beforeinitial_yearand tofinal_multiplierafterfinyear). Codos, plateaus, and other inflections in the baseline are preserved by construction because only the magnitude is rescaled.- Parameters:
time_list – List of years
value_list – List of base values
final_multiplier – Multiplier applied at
finyearfinyear – Last year of analysis
initial_year – Year uncertainty begins (multiplier is 1.0 here)
- Returns:
List of new values
- src.workflow.z_auxiliar_code.interpolation_constant_trajectory(time_list, value_list, initial_year)
Maintain constant trajectory from initial year.
- Parameters:
time_list – List of years
value_list – List of base values
initial_year – Year to freeze values
- Returns:
List of constant values
- src.workflow.z_auxiliar_code.interpolation_linear(time_list, value_list, multiplier, last_year, initial_year)
Linear interpolation to modified final value.
- Parameters:
time_list – List of years
value_list – List of base values
multiplier – Final value multiplier
last_year – Last year of analysis
initial_year – Year uncertainty begins
- Returns:
List of linearly interpolated values
- src.workflow.z_auxiliar_code.interpolation_logistic_trajectory(time_list, value_list, multiplier, last_year, initial_year)
Logistic (S-curve) trajectory interpolation.
- Parameters:
time_list – List of years
value_list – List of base values
multiplier – Final value multiplier
last_year – Last year of analysis
initial_year – Year uncertainty begins
- Returns:
List of values following logistic curve
Pipeline Scripts
run.py
Main pipeline orchestrator.
- run.main()[source]
Main entry point for the OSeMOSYS-RDM pipeline.
Command line arguments:
module: ‘rdm’, ‘prim’, or ‘all’--force: Force re-execution--skip-pull: Skip DVC pull--env-name: Custom environment name--env-file: Path to environment.yaml
DVC Wrapper Scripts
- scripts.run_base_future.main()
Execute base future scenario (Future 0).
Temporarily modifies Interface_RDM.xlsx to run only the base case, then restores the original configuration.
- scripts.run_rdm_experiment.main()
Execute RDM experiment with multiple futures.
Configures for RDM-only execution and runs the experiment manager.
- scripts.run_postprocess.main()[source]
Aggregate and concatenate results from all futures.
Calls the output dataset creator to consolidate parquet files.
PRIM Module
t3f2_prim_files_creator
- src.workflow.4_PRIM.t3f2_prim_files_creator.f1_create_prim_files(dir_elements, dirl, scen, dict_pfcp, analysis_list, dict_set_matching, period_control, all_exp_data, exp_id, params, dicPop)
Create PRIM-ready files from experiment data.
- Parameters:
dir_elements – List of files in directory
dirl – Directory path
scen – Scenario name
dict_pfcp – PRIM files creator parallel config
analysis_list – List of analysis IDs
dict_set_matching – Set matching dictionary
period_control – Period configuration
all_exp_data – All experiment data
exp_id – Experiment ID
params – YAML parameters
dicPop – Population dictionary
- src.workflow.4_PRIM.t3f2_prim_files_creator.f2_exe_postproc(prim_tbl, prim_tbl_bau, period_list, yr_ini_list, yr_fin_list, list_acc_files, list_dfs, actor, name, set_type, source, col_name, col_sets, den_frml, mcod, num_frml, last_indicate, prms, set_argmnt, sup_sets, vmng, exp_data, future, scen, whole_period, df_sm, tbl_id, o_or_d, ana_ID, exp_id, params, dicPop)
Execute post-processing for PRIM table creation.
- Parameters:
prim_tbl – PRIM table dictionary
prim_tbl_bau – BAU reference table
period_list – List of periods
... – Additional parameters
- Returns:
Updated PRIM table
Data Structures
Experiment Dictionary
experiment_dictionary = {
1: { # X_Num
'Category': str, # Uncertainty category
'Math_Type': str, # Mathematical type
'Exact_X': str, # Description
'Involved_Scenarios': list,
'Involved_First_Sets_in_Osemosys': list,
'Involved_Second_Sets_in_Osemosys': list,
'Involved_Third_Sets_in_Osemosys': list,
'Exact_Parameters_Involved_in_Osemosys': list,
'Initial_Year_of_Uncertainty': int,
'Explored_Parameter_of_X': str,
'Futures': list, # [1, 2, 3, ..., N]
'Values': list, # Sampled values per future
},
# ...
}
Inherited Scenarios
inherited_scenarios = {
'Scenario1': {
1: { # Future ID
'CapitalCost': {
'r': [], # Region
't': [], # Technology
'y': [], # Year
'value': [], # Values
},
# ... other parameters
},
# ... other futures
},
# ... other scenarios
}
PRIM Files Dictionary
pfd = {
'o': { # Outcomes
1: { # Table ID
'period_name': {
'column_name': {
'vl': [], # Values list
'snl': [], # Store num lists
},
'Fut_ID': [],
'Scenario': [],
},
},
},
'd': { # Drivers
# Same structure as outcomes
},
}