Skip to main content

PytestUpload to PyPideploy-docsPyPI - DownloadsGitHub issuesLicensePyPI Downloads

PyDSS

PyDSS is a high-level Python interface for OpenDSS that extends its organizational, analytical, and co-simulation capabilities. It is built on top of OpenDSSDirect.py.

Documentation: https://natlabrockies.github.io/PyDSS/

Key Features

  • Custom Control Algorithms — Define Python-based controllers for any circuit element, executed at each simulation time step. 13 built-in controllers are included (PV, storage, motor stall, fault, transformer, thermostat, and more).
  • HELICS Co-simulation — Integrate with external simulators via the HELICS framework for cyber-physical co-simulation studies.
  • Scenario Management — Run multiple scenarios on a shared OpenDSS model with independent controllers, exports, and post-processing.
  • Flexible Data Export — Export results to HDF5 or CSV with per-element filtering, regex-based selection, moving averages, and group aggregation.
  • Automated Reports — Generate reports for voltage metrics, thermal metrics, PV clipping/curtailment, capacitor switching, tap changes, and feeder losses.
  • Monte Carlo Studies — Built-in support for running Monte Carlo simulations with profile management.
  • Extension Architecture — Plugin system for custom controllers, post-processing scripts, and report types.

Installation

Install in a conda virtual environment (recommended):

conda create -n pydss python=3.11
conda activate pydss
pip install NREL-pydss

Quick Start

# Create a project with two scenarios
pydss create-project --project=my-project --scenarios="scenario1,scenario2" --path=./projects

# Copy your OpenDSS files into projects/my-project/DSSfiles/
# Set dss_file in projects/my-project/simulation.toml

# Run all scenarios
pydss run ./projects/my-project

Python API

from pydss.pydss_project import PyDssProject

# Run a project
PyDssProject.run_project("./projects/my-project")

# Access results
from pydss.pydss_results import PyDssResults
results = PyDssResults("./projects/my-project")
scenario = results.scenarios[0]
df = scenario.get_dataframe("Lines", "Currents", "Line.pvl_112")

CLI Commands

Command Description
pydss create-project Create a new project with scenarios
pydss run Run all scenarios in a project
pydss export Convert HDF5 results to CSV
pydss controllers Manage the controller registry
pydss edit-scenario Modify scenario configuration
pydss reports Generate analysis reports

Run pydss --help for full usage details.

License

BSD 3-Clause. See LICENSE for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nrel_pydss-3.1.10.tar.gz (178.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nrel_pydss-3.1.10-py3-none-any.whl (239.8 kB view details)

Uploaded Python 3

File details

Details for the file nrel_pydss-3.1.10.tar.gz.

File metadata

  • Download URL: nrel_pydss-3.1.10.tar.gz
  • Upload date:
  • Size: 178.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nrel_pydss-3.1.10.tar.gz
Algorithm Hash digest
SHA256 43d03089285a1c0253aa4c9682abc68078e8c8a3fd89078b0beb630d27b04b08
MD5 e90e06c476acbcf48cd28ecc65dbe8b6
BLAKE2b-256 140b0e76389dc452d44ca823ee8c54a1dd610fc6eea7a2f1b3dd72d40c13de74

See more details on using hashes here.

File details

Details for the file nrel_pydss-3.1.10-py3-none-any.whl.

File metadata

  • Download URL: nrel_pydss-3.1.10-py3-none-any.whl
  • Upload date:
  • Size: 239.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nrel_pydss-3.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 d0214d47c7aef5ae960ec53c985d6974df9723590be1e2dae39c14e7a3f9c030
MD5 5437802ed6571ff9d7e2a45acd5eddc9
BLAKE2b-256 dd1cefb00a05196fde0a2aaf7d81c0af19e22fca4f86672a9aa5b62edaab2ee0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.1.10 This release

2 files

3.1.7

2 files

3.1.6

2 files

3.1.5

2 files

3.1.4

2 files

3.1.3

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page