Release 0.7.0#306
Merged
Merged
Conversation
Test matrix upgrade
Environment, Command to Execute Notebooks Anaconda prompt: set PVD_SKIP_HPC_CHECK=True & jupyter nbconvert --to notebook --execute --inplace "tutorials_and_tools/tutorials_and_tools/*HPC*.ipynb" Windows Local/CI, "(pvdeg) $env:PVD_SKIP_HPC_CHECK=""True""; jupyter nbconvert --to notebook --execute --inplace ""tutorials_and_tools/tutorials_and_tools/*HPC*.ipynb""" Linux/macOS Local/CI, "(pvdeg) PVD_SKIP_HPC_CHECK=True jupyter nbconvert --to notebook --execute --inplace ""tutorials_and_tools/tutorials_and_tools/*HPC*.ipynb""" NREL Kestrel HPC, "(pvdeg) jupyter nbconvert --to notebook --execute --inplace ""tutorials_and_tools/tutorials_and_tools/*HPC*.ipynb"""
RDaxini
approved these changes
Dec 4, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Notebook Restructuring and Documentation Improvements
Overview
This PR implements a major restructuring of tutorial notebooks, comprehensive documentation improvements, enhanced contributor workflows, and introduces PySAM integration for agrivoltaics modeling in PVDeg v0.7.0.
Major Achievements
🚀 PySAM Integration for Agrivoltaics (#252)
New capability unlocked! This release introduces a complete PySAM wrapper enabling system-level performance modeling and agrivoltaics simulations within PVDeg's geospatial framework.
New
pvdeg.pysamModuleA comprehensive public module wrapping NREL-PySAM for seamless integration:
pysam()- Execute SAM simulations directly from PVDeg workflowsoptimal_gcr_pitch()- Calculate optimal ground coverage ratio and pitch for fixed-tilt bifacial systems based on latitude and GCR optimization parametersinspire_practical_pitch()- Determine tilt, pitch, and GCR for practically constrained agrivoltaic systemsinspire_ground_irradiance()- Calculate inter-row ground irradiance for the InSPIRE agrivoltaics irradiance datasetsolar_resource_dict()- Convert PVDeg weather and metadata into SAM-compatible solar resource collectionsEnhanced Geospatial Analysis
Expert options added to
pvdeg.geospatial.analysisfor advanced workflows:preserve_gid_dim- Maintains model outputs ingiddimension instead of converting tolatitude,longitudedomain for optimized processingcompute- Returnsdask.Delayedobjects to build complex task graphs:analysis(..., compute=False)enables lazy evaluation for HPC workflowsImpact: This integration bridges degradation modeling with system performance analysis, enabling comprehensive agrivoltaics studies that combine yield predictions with degradation effects across large geospatial domains.
Note: Current implementation is optimized for InSPIRE Agrivoltaics workflows. Future releases will generalize this module for broader out-of-the-box geospatial PySAM calculations.
Breaking Changes
pvlib.iotools.get_psm3()replaced withpvlib.iotools.get_nsrdb_psm4_tmy()(Upgrade to GOES PSM v4 #286, Transition from NSRDB PSM3 to PSM4 #287)Scenarioclass to accept nested dictionaries of multiple materials from different material files inscenario.addModule(). Updatedutilities._add_material()andscenario.add_material()accordingly.Enhancements
📚 Tutorial Restructuring (#232, #271, #302)
New Organization: Migrated from
tutorials_and_tools/totutorials/with logical themed folders:01_basics/(4 notebooks) - Introduction to PVDeg fundamentals02_degradation/(6 notebooks) - Degradation mechanism modeling03_monte_carlo/(2 notebooks) - Monte Carlo uncertainty analysis04_scenario/(3 notebooks) - Scenario class workflows05_geospatial/(5 notebooks) - Geospatial and HPC scenarios06_advanced/(4 notebooks) - Advanced topics and API access10_workshop_demos/(2 notebooks) - Workshop demonstrationstools/(3 notebooks) - Standalone analysis toolsLocal Weather Data: Updated notebooks to load pre-saved weather data by default to avoid API rate limits:
03_monte_carlo/01_arrhenius.ipynb(Miami)01_basics/04_weather_database_access.ipynb(Golden, CO)03_monte_carlo/02_standoff.ipynb(NYC)Version Control Integration: Added jupytext configuration and Python script versions for all notebooks with pre-commit hook synchronization
Updated References: Replaced Eagle HPC references with Kestrel (NREL's current HPC system)
CI/CD Updates: Updated all configuration files (
_toc.yml,_config.yml,myst.yml) and GitHub Actions workflows (nbval.yaml,testbook.yaml,deploy-books.yml)📖 Documentation Improvements
Contributing Guide: Created comprehensive CONTRIBUTING.md with guidelines for:
(Add jupyter, ipykernel to depedencies #145, pre-commit add documentation for installation #293, Highlight database contribution on Contributing page #296, Notebook restructuring #302)
ReadTheDocs PR Builds: Configured automatic documentation builds on every pull request for preview and review (Implement read the docs build on PRs #258, Notebook restructuring #302)
Updated Citations: Refreshed documentation homepage (
index.rst) and README with current Zenodo DOI, JOSS paper (in review), and software record (Update references in docs #283, Notebook restructuring #302)🐍 Python & Dependencies
kinetic_parameters.jsonintoDegradationDatabase.json(Merge kinetic parameters and degradation database files #176, Merge kinetic parameters database into degradation database #248)h5py<=3.14.0for compatibility (Open netcdf4 and h5py version restrictions #278, Restrict h5py #277)🐛 Bug Fixes
Contributors
Testing
Closes #232, #271, #258, #145, #293, #296, #283
Issue ticket number and link
Fixes #298
Type of change
Please delete options that are not relevant.
Checklist before requesting a review