PyDSS Project Layout#
A PyDSS project is made up of one or more scenarios that run simulations on a shared OpenDSS model. The purpose of scenarios is to allow users to customize inputs, outputs, or controls. Here are some examples to define multiple scenarios:
Run different control algorithms.
Run snapshot simulations at different time points.
Generate custom plots.
Run custom post-process scripts after each call to
Solve
.
Simulation Settings#
The main configuration file for the simulation is stored at <project-name>/simulation.toml
.
Refer to SimulationSettingsModel for more information. The following model defines all options valid for the simulation.toml file
Scenarios#
Each scenario provides customizable config files in <project-name>/Scenarios/<scenario-name>
.
Refer to these subdirectories:
pyControllerList
ExportLists
Exports#
If export_results
is enabled then exported data for each scenario will be located in output
directories at <project-name>/Exports/<scenario-name>/
.
Reports#
If any reports are enabled then generated report files will be located in the output
directory <project-name>/Reports/
.
Example layout#
Here is an example project that uses different controllers for each scenario.
tree examples/custom_contols
examples/custom_contols
├── DSSfiles
│ ├── HECO19021_Profile9998.DSV
│ ├── HECO19021_Profile9998.dbl
│ ├── HECO19021_VLN_Node.Txt
│ ├── Loadshapes_Sep8to15.dss
│ ├── MPX000460267.csv
│ ├── MPX000472455.csv
│ ├── MPX000594341.csv
│ ├── MPX000635970.csv
│ ├── MPX000637601.csv
│ ├── Master_Spohn_existing_VV.dss
│ ├── PVGenerators_existing_VV.dss
│ ├── SecLines.dss
│ ├── SecLoads_Timeseries_realloc.dss
│ ├── Vsource_profile.csv
│ ├── buscoords.dss
│ └── testcodes.dss
├── Exports
├── ProfileManager.toml
├── Profiles
│ ├── mapping.toml
│ └── profiles.hdf5
├── Scenarios
│ ├── base_case
│ │ ├── ExportLists
│ │ │ └── ExportMode-byClass.toml
│ │ ├── pyControllerList
│ │ └── pyPlotList
│ ├── multiple_controls
│ │ ├── ExportLists
│ │ │ └── ExportMode-byClass.toml
│ │ ├── PostProcess
│ │ ├── pyControllerList
│ │ │ ├── PvController.toml
│ │ │ └── StorageController.toml
│ │ └── pyPlotList
│ ├── self_consumption
│ │ ├── ExportLists
│ │ │ └── ExportMode-byClass.toml
│ │ ├── PostProcess
│ │ ├── pyControllerList
│ │ │ └── StorageController.toml
│ │ └── pyPlotList
├── simulation.toml