NREL-PySAM
National Laboratory of the Rockies' System Advisor Model Python Wrapper
What it is and what it does
PySAM is a Python wrapper around NREL's System Advisor Model, a comprehensive simulation engine for modeling renewable energy systems. It provides programmatic access to SAM's modules for solar (photovoltaic and concentrating thermal), wind, battery storage, and hybrid configurations, along with utility rate and financial analysis tools. The package bundles pre-compiled simulation kernels (SSC version 306 in the current release) and exposes them through a Python API, eliminating the need to use SAM's graphical interface for batch simulations or integration into larger workflows.
The package is actively maintained and tracks SAM releases closely, with recent updates adding geothermal modeling (GETEM) and renaming modules for clarity. It has no runtime dependencies beyond Python itself, relying entirely on bundled compiled libraries. Installation is straightforward on modern Python versions (3.10–3.13) across Windows, macOS, and Linux, though the binary wheels mean you are locked to supported platforms and architectures.
Use it for:
- Run batch photovoltaic performance simulations across multiple sites or configurations without opening the SAM GUI.
- Integrate renewable energy system modeling into optimization workflows or sensitivity analyses.
- Analyze battery storage sizing, chemistry selection, and dispatch strategies for hybrid systems.
- Calculate utility rate impacts and financial metrics for solar or wind projects programmatically.
- Simulate wind power output or hybrid solar-wind-battery systems for feasibility studies.
- Automate geothermal system modeling and performance prediction using the GETEM module.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PySAM wraps NREL's System Advisor Model (SAM) simulation engine, providing Python access to energy system modeling and performance analysis across solar, wind, battery, and hybrid technologies.
Yes, if you need to model renewable energy systems or perform SAM simulations in Python. The package is actively maintained, has no external dependencies, installs cleanly on modern Python (3.10+), and carries permissive licensing. Install friction is medium but manageable due to pre-built wheels. Not worth installing if you only need SAM's GUI or if you are on an unsupported Python version or architecture.
Install
nrel-pysam on PyPI
pip
pip install nrel-pysamuv
uv add nrel-pysampoetry
poetry add nrel-pysamInstalling NREL-PySAM
Before you install
Medium install friction due to compiled binary wheels. Wheels are pre-built for Python 3.10–3.13 across macOS (arm64 and x86_64), Linux (aarch64 and x86_64), and Windows (amd64), so installation is straightforward on supported platforms. Package is actively maintained with recent release in April 2026.
License in practice
BSD 3-Clause is permissive, allowing commercial and private use with minimal restrictions. You must include a copy of the license and retain copyright notices.
Quickstart
pip install nrel-pysam
import PySAM
# Access SAM modules for energy system simulation
module = PySAM.Pvwattsv7()
Requires Python 3.10 or later (3.8 support was dropped in version 7.0.0). Binary wheels are available for common platforms; installation on unsupported architectures may require compilation.
Verify before relying
- Whether offline use or internet connectivity is required for resource data downloads
- Performance characteristics and typical simulation runtime for different system scales
- Compatibility with third-party energy modeling or optimization libraries
Package facts
| License | BSD 3-Clause (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 110 days since the last release |
| First released | |
| Downloads | 116,907/month — #12,187 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nrel_pysam-7.1.1.post1-cp310-cp310-macosx_12_0_arm64.whl; nrel_pysam-7.1.1.post1-cp310-cp310-macosx_12_0_x86_64.whl; nrel_pysam-7.1.1.post1-cp310-cp310-manylinux2014_aarch64.whl; nrel_pysam-7.1.1.post1-cp310-cp310-manylinux2014_x86_64.whl; nrel_pysam-7.1.1.post1-cp310-cp310-win_amd64.whl; nrel_pysam-7.1.1.post1-cp311-cp311-macosx_12_0_arm64.whl; nrel_pysam-7.1.1.post1-cp311-cp311-macosx_12_0_x86_64.whl; nrel_pysam-7.1.1.post1-cp311-cp311-manylinux2014_aarch64.whl; nrel_pysam-7.1.1.post1-cp311-cp311-manylinux2014_x86_64.whl; nrel_pysam-7.1.1.post1-cp311-cp311-win_amd64.whl; nrel_pysam-7.1.1.post1-cp312-cp312-macosx_12_0_arm64.whl; nrel_pysam-7.1.1.post1-cp312-cp312-macosx_12_0_x86_64.whl; nrel_pysam-7.1.1.post1-cp312-cp312-manylinux2014_aarch64.whl; nrel_pysam-7.1.1.post1-cp312-cp312-manylinux2014_x86_64.whl; nrel_pysam-7.1.1.post1-cp312-cp312-win_amd64.whl; nrel_pysam-7.1.1.post1-cp313-cp313-macosx_12_0_arm64.whl; nrel_pysam-7.1.1.post1-cp313-cp313-macosx_12_0_x86_64.whl; nrel_pysam-7.1.1.post1-cp313-cp313-manylinux2014_aarch64.whl; nrel_pysam-7.1.1.post1-cp313-cp313-manylinux2014_x86_64.whl; nrel_pysam-7.1.1.post1-cp313-cp313-win_amd64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pysampysam reads, manipulates, and writes genomic…
permissive · top 5,000 on PyPI
pvlibSimulates photovoltaic energy system…
permissive · top 5,000 on PyPI
pysmaConnects to SMA solar inverters via their…
permissive · top 15,000 on PyPI
pvanalyticsPVAnalytics provides quality control,…
permissive · top 15,000 on PyPI
honeybee-energyHoneybee-energy extends honeybee-core with…
agpl · top 15,000 on PyPI
pandapowerpandapower automates power system modeling,…
permissive · top 15,000 on PyPI
huawei-solarProvides a Python interface to read and write…
agpl · top 15,000 on PyPI
pyenphaseProvides a Python library to communicate with…
permissive · top 15,000 on PyPI
pypsaPyPSA is a Python framework for optimizing and…
permissive · top 15,000 on PyPI
salabimSalabim is a Python library for discrete event…
permissive · top 15,000 on PyPI