Skip to main content

SunSolve P90 Analysis Client

A Python client library for connecting to the SunSolve P90 analysis service via gRPC. This package enables photovoltaic system P90 analysis with comprehensive uncertainty modeling and Monte Carlo simulations.

Features

  • Direct gRPC Connection: Secure, efficient communication with SunSolve P90 service
  • Uncertainty Analysis: Apply probability distributions to solar resource, system losses, and operational parameters
  • Multi-Year Simulations: Support for both Typical Mean Year (TMY) and multi-year actual datasets
  • Comprehensive Error Handling: Custom exception classes for different error scenarios
  • Type Safety: Full type annotations for better development experience
  • Weather Data Support: Load data from PVW files and CSV formats

Quick Start

Installation

pip install sunsolve-p90-client

Prerequisites

  • Python 3.12+
  • SunSolve account with P90 Analysis subscription (sign up here)
  • Network access to SunSolve servers

Basic Usage

from pvl_p90_client.client.p90_client import P90Client
from pvl_p90_client.grpcclient.uncertaintyMessages_pb2 import DistributionInput
from pvl_p90_client.helpers import pvl_login
from pvl_p90_client.helpers.request_helpers import (
    build_distribution,
    build_gaussian_distribution,
    build_request,
    load_weather_data_from_pvw_file,
)

# Connect to the P90 analysis service
with P90Client() as client:
    # Authenticate with your SunSolve credentials (prompts for username/password)
    credentials = pvl_login.login(client=client)

    # Load weather data from a PVW file (Typical Mean Year format)
    weather_data = load_weather_data_from_pvw_file("../data/sydney.pvw") or []

    # Add uncertainty distribution for Global Horizontal Irradiance (GHI)
    # This adds ±5% variation to solar irradiance values
    distributions = [build_distribution(input=DistributionInput.GHI, sim_to_sim_distribution=build_gaussian_distribution(1.0, 0.05))]

    # Create a minimal request with weather data and basic uncertainty
    # This uses default system parameters and simulation settings
    request = build_request(time_step_data=weather_data, distributions=distributions)

    # Send the analysis request and receive results
    summary, used_inputs = client.send_request(request, credentials, timeout=90.0)

    # Display results
    if summary:
        print(f"Analysis complete! Generated {len(summary.YearlyPValue)} yearly P-values")
        for pvalue in summary.YearlyPValue:  # Show all years
            print(f"  Year {pvalue.Year}: P{pvalue.P} = {pvalue.P50Deviation:.4f}")
    else:
        print("No analysis results received")

What This Package Does

The SunSolve P90 Analysis Client enables you to:

  • Run Monte Carlo Simulations: Calculate P-values (probability of exceedance) for photovoltaic energy production
  • Apply Uncertainty Distributions: Model variability in solar resource, system performance, and operational factors
  • Process Weather Data: Import and analyze weather datasets in multiple formats
  • Get Probabilistic Results: Receive P5, P10, P50, P90, P95 confidence intervals for energy production

Uncertainty Modeling

Apply probability distributions to key parameters:

  • Solar Resource: GHI, temperature, wind speed variations
  • System Performance: Module mismatch, inverter efficiency, soiling losses
  • Operational Factors: Degradation rates, availability, curtailment

Results

Get comprehensive probabilistic analysis including:

  • P-Values: Probability of exceedance levels (P5, P10, P50, P90, P95)
  • Yearly Projections: Multi-year degradation modeling
  • Monte Carlo Statistics: Distribution analysis across thousands of simulations

Support & Documentation


Note: This package requires a SunSolve account with P90 Analysis subscription. Visit sunsolve.info to get started.

Metadata

Release files for sunsolve-p90-client 0.3.0.326

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sunsolve-p90-client 0.3.0.326
File Size Uploaded Provenance
sunsolve_p90_client-0.3.0.326.tar.gz 33.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for sunsolve-p90-client 0.3.0.326
File Interpreter ABI Platform
sunsolve_p90_client-0.3.0.326-py3-none-any.whl Python 3 none any Details

Total release size: 70.6 kB

Release files / sunsolve_p90_client-0.3.0.326.tar.gz

Download URL sunsolve_p90_client-0.3.0.326.tar.gz
Size 33.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7372a48c89a3bf0bdd75692fa93c444246eb2e6b2f78749ecced7e6b07d9d11f
BLAKE2b-256 checksum
How to use checksums
cee616a43057c48e3984f1aac5f631e7c41c0e58eceab622521c053ebabb6729
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / sunsolve_p90_client-0.3.0.326-py3-none-any.whl

Download URL sunsolve_p90_client-0.3.0.326-py3-none-any.whl
Size 37.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dcc0fc85d2fb7c62d7f6b9fbb70d3d177ca6db751b9a0e1208fdbb1f5060e1d6
BLAKE2b-256 checksum
How to use checksums
829ba4481a7728443c1544c4703a943810ab2c4fb4b1d6830b4abe81a47d8314
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for sunsolve-p90-client 0.3.0.326

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page