Skip to main content


Explore our documentation · Report Issue

Repo Status Project Status: Active – The project has reached a stable, usable state and is being actively developed.
pyOpenSci Peer-Reviewed Project has been peer-reviewed by pyOpenSci.
JOSS Paper DOI badge
Python Versions latest release
Latest Release latest release
License license
Build Status documentation build status Actions build status
Publications DOI
PyPI Downloads PyPI downloads
Conda Downloads conda-forge downloads
Test-Coverage test-coverage

Solar Data Tools is an open-source Python library for analyzing PV power (and irradiance) time-series data. It was developed to enable analysis of unlabeled PV data, i.e. with no model, no meteorological data, and no performance index required, by taking a statistical signal processing approach in the algorithms used in the package’s main data processing pipeline. Solar Data Tools empowers PV system fleet owners or operators to analyze system performance a hundred times faster even when they only have access to the most basic data stream—power output of the system.

Solar Data Tools provides methods for data I/O, cleaning, filtering, plotting, and analysis. These methods are largely automated and require little to no input from the user regardless of system type—from utility tracking systems to multi-pitch rooftop systems. Head over to our Getting Started pages in our documentation for a demo!

As of April 2026, we have a new webinar posted to YouTube! Check it out here:


You can also check the notebooks folder in this repo for more examples.

This work is supported by the U.S. Department of Energy’s Office of Energy Efficiency and Renewable Energy (EERE) under the Solar Energy Technologies Office Award Number 38529.

Install & Setup

Recommended: Install with pip

In a fresh Python virtual environment, simply run:

$ pip install solar-data-tools

or if you would like to use MOSEK, install the optional dependency as well:

$ pip install "solar-data-tools[mosek]"

Install with conda

[!WARNING] solar-data-tools is now available on conda-forge! You can specify the channel using the -c flag as shown in the examples below. The use of the slacgismo channel is deprecated and packages on that channel will not be up-to-date with the latest releases.

Creating the environment and directly installing the package and its dependencies from the appropriate conda channels:

$ conda create -n pvi-user solar-data-tools -c conda-forge

Starting the environment:

$ conda activate pvi-user

Stopping the environment:

$ conda deactivate

Or alternatively install the package in an already existing environment:

$ conda install solar-data-tools -c conda-forge

Solvers

CLARABEL

By default, the CLARABEL solver is used to solve the signal decomposition problems. CLARABEL (as well as other solvers) is compatible with OSD, the modeling language used to solve signal decomposition problems in Solar Data Tools. Both are open source and are dependencies of Solar Data Tools.

MOSEK

MOSEK is a commercial software package. Since it is more stable and offers faster solve times, we provide continuing support for it (with signal decomposition problem formulations using CVXPY). However, you will still need to obtain a license. If installing with pip, you can install the optional MOSEK dependency by running pip install "solar-data-tools[mosek]". If installing from conda, you will have to manually install MOSEK if you desire to use it as conda does not support optional dependencies like pip.

More information about MOSEK and how to obtain a license is available here:

Usage

Users will primarily interact with this software through the DataHandler class. By default, Solar Data Tools uses CLARABEL as the solver all signal decomposition problems. If you would like to specify another solver (such as MOSEK), just pass the keyword argument solver to DataHandler.pipeline with the solver of choice.

import pandas as pd
from solardatatools import DataHandler

pv_system_data = pd.read_csv('path/to/your/data.csv', index_col=0, parse_dates=True)

dh = DataHandler(pv_system_data)
dh.run_pipeline(power_col='dc_power')

If everything is working correctly, you should see a run summary like the following

total time: 25.99 seconds
--------------------------------
Breakdown
--------------------------------
Preprocessing              6.76s
Cleaning                   0.41s
Filtering/Summarizing      18.83s
    Data quality           0.21s
    Clear day detect       0.44s
    Clipping detect        15.51s
    Capacity change detect 2.67s

You can also find more in-depth tutorials and guides in our documentation.

Contributing

We welcome contributions of any form! Please see our Contribution Guidelines for more information.

Citing Solar Data Tools

If you use Solar Data Tools in your research, please cite:

Recommended citation

Sara A. Miskovich, Bennet E. Meyers, et al., "Solar Data Tools: a Python library for automated analysis of unlabeled PV data," Journal of Open Source Software, 10(110), 8478, 2025, doi: 10.21105/joss.08478

Citing technical details (e.g., SDT algorithms)

Bennet E. Meyers, PVInsight (Final Technical Report), SLAC Report SLAC-R-1155, 2021, doi: 10.2172/1897181

Bennet E. Meyers, Elpiniki Apostolaki-Iosifidou and Laura Schelhas, "Solar Data Tools: Automatic Solar Data Processing Pipeline," 2020 47th IEEE Photovoltaic Specialists Conference (PVSC), Calgary, AB, Canada, 2020, pp. 0655-0656, doi: 10.1109/PVSC45281.2020.9300847.

Citing a specific version

You can also cite the DOI corresponding to the specific version of Solar Data Tools that you used. Solar Data Tools DOIs are listed at here.

Versioning

We use Semantic Versioning for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

Copyright Notice

COPYRIGHT © 2025 Alliance for Sustainable Energy, LLC and SLAC National Accelerator Laboratory. All rights reserved. This work is supported in part by the U.S. Department of Energy, Office of Basic Energy Sciences under contract DE-AC02-76SF00515.

Usage Restrictions

Neither the name of the Leland Stanford Junior University, SLAC National Accelerator Laboratory, U.S. Department of Energy nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

Release files for solar-data-tools 2.1.5

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

Source distribution (sdist)

Source distribution for solar-data-tools 2.1.5
File Size Uploaded
solar_data_tools-2.1.5.tar.gz 76.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for solar-data-tools 2.1.5
File Interpreter ABI Platform
solar_data_tools-2.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 154.0 MB

Release files / solar_data_tools-2.1.5.tar.gz

Download URL solar_data_tools-2.1.5.tar.gz
Size 76.9 MB
Tags Source
SHA-256 checksum
How to use checksums
b3084a0d99c9c35d274bc6781edd46ef9d7ddfd4ac58972a696e2b8020b4f9e7
BLAKE2b-256 checksum
How to use checksums
d10e82d6c453f5b61a7f4c839ac537bd9ea3913d57768e63883454511210df0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 2, 2026.

Transparency log

Release files / solar_data_tools-2.1.5-py3-none-any.whl

Download URL solar_data_tools-2.1.5-py3-none-any.whl
Size 77.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
0bee31d92f9333db0b8622b24c70510a5187b97ca04d999cc0867cf2aa5a9622
BLAKE2b-256 checksum
How to use checksums
e2d2a4f5985f27ed8e7ba5ee74c9e288a2c8f88899285a3e24712f5d45e95f07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.1.5 This release

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.1

2 release files

2.0.0

1 release file

1.7.1

2 release files

1.7.0

2 release files

1.6.6

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

1 release file

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.0

2 release files

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