NREL-PySAM
National Laboratory of the Rockies' System Advisor Model Python Wrapper
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- Medium install friction due to compiled binary wheels.
License · maintenance · safety
BSD 3-Clause (permissive) — 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.
last release 2026-04-26 (110 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 116,907 downloads/mo, #12,187 on PyPI
Alternatives
Verify before relying
pip install nrel-pysam
import PySAM
# Access SAM modules for energy system simulation
module = PySAM.Pvwattsv7()- 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
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 on it.
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
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.
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.
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()
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
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “renewable energy simulation”
- NREL-PySAMPySAM wraps NREL's System Advisor Model (SAM) simulation engine,…
- amberelectricProvides a Python interface to the Amber Electric API for querying…
- pypsaPyPSA is a Python framework for optimizing and simulating power and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also pysam · pvlib · pysma · pvanalytics · honeybee-energy · pandapower · huawei-solar · pyenphase · pypsa · salabim