sunsolve-p90-client


Namesunsolve-p90-client JSON
Version 0.1.2.207 PyPI version JSON
download
home_pageNone
SummaryPython client library for SunSolve p90 analysis service
upload_time2025-10-29 01:25:31
maintainerSunSolve
docs_urlNone
authorSunSolve
requires_python>=3.10
licenseNone
keywords photovoltaic pv uncertainty analysis grpc sunsolve p90
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```bash
pip install sunsolve-p90-client
```

### Prerequisites

- Python 3.12+
- SunSolve account with **Uncertainty Analysis subscription** ([sign up here](https://sunsolve.info/p90/signup))
- Network access to SunSolve servers

### Basic Usage

```python
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()

    # 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

- **Documentation**: [docs.sunsolve.com/en/p90/](https://docs.sunsolve.com/en/p90/)
- **Getting Started**: [P90 Analysis Guide](https://docs.sunsolve.com/en/p90/getting-started/)
- **Contact**: [sunsolve.info/contact/](https://sunsolve.info/contact/)

---

**Note**: This package requires a SunSolve account with Uncertainty Analysis subscription. Visit [sunsolve.info](https://sunsolve.info/p90/signup) to get started.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sunsolve-p90-client",
    "maintainer": "SunSolve",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "photovoltaic, pv, uncertainty, analysis, grpc, sunsolve, p90",
    "author": "SunSolve",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/a6/d4/258cbde553d931d7367bd694689b0c83898866ea1cd9559843d37abf34fb/sunsolve_p90_client-0.1.2.207.tar.gz",
    "platform": null,
    "description": "# SunSolve P90 Analysis Client\n\nA 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.\n\n## Features\n\n- **Direct gRPC Connection**: Secure, efficient communication with SunSolve P90 service\n- **Uncertainty Analysis**: Apply probability distributions to solar resource, system losses, and operational parameters\n- **Multi-Year Simulations**: Support for both Typical Mean Year (TMY) and multi-year actual datasets\n- **Comprehensive Error Handling**: Custom exception classes for different error scenarios\n- **Type Safety**: Full type annotations for better development experience\n- **Weather Data Support**: Load data from PVW files and CSV formats\n\n## Quick Start\n\n### Installation\n\n```bash\npip install sunsolve-p90-client\n```\n\n### Prerequisites\n\n- Python 3.12+\n- SunSolve account with **Uncertainty Analysis subscription** ([sign up here](https://sunsolve.info/p90/signup))\n- Network access to SunSolve servers\n\n### Basic Usage\n\n```python\nfrom pvl_p90_client.client.p90_client import P90Client\nfrom pvl_p90_client.grpcclient.uncertaintyMessages_pb2 import DistributionInput\nfrom pvl_p90_client.helpers import pvl_login\nfrom pvl_p90_client.helpers.request_helpers import (\n    build_distribution,\n    build_gaussian_distribution,\n    build_request,\n    load_weather_data_from_pvw_file,\n)\n\n# Connect to the P90 analysis service\nwith P90Client() as client:\n    # Authenticate with your SunSolve credentials (prompts for username/password)\n    credentials = pvl_login.login()\n\n    # Load weather data from a PVW file (Typical Mean Year format)\n    weather_data = load_weather_data_from_pvw_file(\"../data/sydney.pvw\") or []\n\n    # Add uncertainty distribution for Global Horizontal Irradiance (GHI)\n    # This adds \u00b15% variation to solar irradiance values\n    distributions = [\n        build_distribution(\n            input=DistributionInput.GHI,\n            sim_to_sim_distribution=build_gaussian_distribution(1.0, 0.05)\n        )\n    ]\n\n    # Create a minimal request with weather data and basic uncertainty\n    # This uses default system parameters and simulation settings\n    request = build_request(time_step_data=weather_data, distributions=distributions)\n\n    # Send the analysis request and receive results\n    summary, used_inputs = client.send_request(request, credentials, timeout=90.0)\n\n    # Display results\n    if summary:\n        print(f\"Analysis complete! Generated {len(summary.YearlyPValue)} yearly P-values\")\n        for pvalue in summary.YearlyPValue:  # Show all years\n            print(f\"  Year {pvalue.Year}: P{pvalue.P} = {pvalue.P50Deviation:.4f}\")\n    else:\n        print(\"No analysis results received\")\n```\n\n## What This Package Does\n\nThe SunSolve P90 Analysis Client enables you to:\n\n- **Run Monte Carlo Simulations**: Calculate P-values (probability of exceedance) for photovoltaic energy production\n- **Apply Uncertainty Distributions**: Model variability in solar resource, system performance, and operational factors\n- **Process Weather Data**: Import and analyze weather datasets in multiple formats\n- **Get Probabilistic Results**: Receive P5, P10, P50, P90, P95 confidence intervals for energy production\n\n## Uncertainty Modeling\n\nApply probability distributions to key parameters:\n\n- **Solar Resource**: GHI, temperature, wind speed variations\n- **System Performance**: Module mismatch, inverter efficiency, soiling losses\n- **Operational Factors**: Degradation rates, availability, curtailment\n\n## Results\n\nGet comprehensive probabilistic analysis including:\n\n- **P-Values**: Probability of exceedance levels (P5, P10, P50, P90, P95)\n- **Yearly Projections**: Multi-year degradation modeling\n- **Monte Carlo Statistics**: Distribution analysis across thousands of simulations\n\n## Support & Documentation\n\n- **Documentation**: [docs.sunsolve.com/en/p90/](https://docs.sunsolve.com/en/p90/)\n- **Getting Started**: [P90 Analysis Guide](https://docs.sunsolve.com/en/p90/getting-started/)\n- **Contact**: [sunsolve.info/contact/](https://sunsolve.info/contact/)\n\n---\n\n**Note**: This package requires a SunSolve account with Uncertainty Analysis subscription. Visit [sunsolve.info](https://sunsolve.info/p90/signup) to get started.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python client library for SunSolve p90 analysis service",
    "version": "0.1.2.207",
    "project_urls": {
        "Contact": "https://sunsolve.info/contact/",
        "Documentation": "https://docs.sunsolve.com/en/p90/",
        "Repository": "https://bitbucket.org/pvlighthouse/pvl-p90-client",
        "Signup": "https://sunsolve.info/p90/signup"
    },
    "split_keywords": [
        "photovoltaic",
        " pv",
        " uncertainty",
        " analysis",
        " grpc",
        " sunsolve",
        " p90"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8fcf9b72ed9031b8d51137ffeed8e4adc98fcfafd4a657fe78b3eded34caca8a",
                "md5": "08c2508ce0c0aa00c3f4b2b1a46b5c22",
                "sha256": "06fc6d1e9cf679587b8e7a3afab3df76f2670c464148ec5b04727b74c864201f"
            },
            "downloads": -1,
            "filename": "sunsolve_p90_client-0.1.2.207-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "08c2508ce0c0aa00c3f4b2b1a46b5c22",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 33953,
            "upload_time": "2025-10-29T01:25:30",
            "upload_time_iso_8601": "2025-10-29T01:25:30.422214Z",
            "url": "https://files.pythonhosted.org/packages/8f/cf/9b72ed9031b8d51137ffeed8e4adc98fcfafd4a657fe78b3eded34caca8a/sunsolve_p90_client-0.1.2.207-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a6d4258cbde553d931d7367bd694689b0c83898866ea1cd9559843d37abf34fb",
                "md5": "ffec7ea59191d1f3299d55c949a56709",
                "sha256": "34a92b1e9c68a22301bd7eb79b5f892328b5e22543500aa7acfdb6e292a16aad"
            },
            "downloads": -1,
            "filename": "sunsolve_p90_client-0.1.2.207.tar.gz",
            "has_sig": false,
            "md5_digest": "ffec7ea59191d1f3299d55c949a56709",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 30834,
            "upload_time": "2025-10-29T01:25:31",
            "upload_time_iso_8601": "2025-10-29T01:25:31.293711Z",
            "url": "https://files.pythonhosted.org/packages/a6/d4/258cbde553d931d7367bd694689b0c83898866ea1cd9559843d37abf34fb/sunsolve_p90_client-0.1.2.207.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-29 01:25:31",
    "github": false,
    "gitlab": false,
    "bitbucket": true,
    "codeberg": false,
    "bitbucket_user": "pvlighthouse",
    "bitbucket_project": "pvl-p90-client",
    "lcname": "sunsolve-p90-client"
}
        
Elapsed time: 0.87834s