A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

solar-data-tools

Data analysis tools for working with historical PV solar time-series data sets.
https://github.com/slacgismo/solar-data-tools

Category: Renewable Energy
Sub Category: Photovoltaics and Solar Energy

Last synced: about 18 hours ago
JSON representation

Repository metadata

Some data analysis tools for working with historical PV solar time-series data sets.

README.md

solar-data-tools

Tools for performing common tasks on solar PV data signals. These tasks include finding clear days in
a data set, common data transforms, and fixing time stamp issues. These tools are designed to be
automatic and require little if any input from the user. Libraries are included to help with data IO
and plotting as well.

See the notebooks folder for examples.

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]
When installing solar-data-tools using conda, you will need to add three channels, conda-forge, slacgismo, and stanfordcvxgrp, to your conda config (or alternatively specify them using the -c flag as shown in the examples below). Failure to do so will result in the installation of an outdated solar-data-tools version. Note that we will be moving solar-data-tools to conda-forge soon, which will simplify the installation process. Check back soon for an update! For more on conda channels, see the conda docs.

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 -c slacgismo -c stanfordcvxgrp 

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 -c slacgismo -c stanfordcvxgrp 

Solvers

QSS & CLARABEL

By default, QSS and CLARABEL solvers are used for non-convex and convex problems, respectively. Both are supported by OSD, the modeling language used to solve signal decomposition problems in Solar Data Tools, and both are open source.

MOSEK

MOSEK is a commercial software package. Since it is more stable and offers faster solve times, we provide continuing support for it, 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. If you would like to specify a solver, just pass the keyword argument solver to dh.pipeline with the solver of choice. Passing QSS will keep the convex problems solver as OSQP, unless solver_convex=QSS is passed as well. Setting solver=MOSEK will set the solver to MOSEK for convex and non-convex problems by default.

from solardatatools import DataHandler
from solardatatools.dataio import get_pvdaq_data

pv_system_data = get_pvdaq_data(sysid=35, api_key='DEMO_KEY', year=[2011, 2012, 2013])

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

If everything is working correctly, you should see something like the following

total time: 24.27 seconds
--------------------------------
Breakdown
--------------------------------
Preprocessing              11.14s
Cleaning                   0.94s
Filtering/Summarizing      12.19s
    Data quality           0.25s
    Clear day detect       1.75s
    Clipping detect        7.77s
    Capacity change detect 2.42s

Contributors

Must enable pre-commit hook before pushing any contributions

pip install pre-commit
pre-commit install

Run pre-commit hook on all files

pre-commit run --all-files

Test Coverage

In order to view the current test coverage metrics, run:

coverage run --source solardatatools -m unittest discover && coverage html
open htmlcov/index.html

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.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 8 days ago

Total Commits: 1,507
Total Committers: 22
Avg Commits per committer: 68.5
Development Distribution Score (DDS): 0.578

Commits in past year: 270
Committers in past year: 8
Avg Commits per committer in past year: 33.75
Development Distribution Score (DDS) in past year: 0.467

Name Email Commits
Bennet Meyers b****m@s****u 636
Sara A. Miskovich s****h@g****m 457
thistleman c****6@g****m 153
Derin Serbetcioglu s****d@g****m 68
vlianCMU v****n@a****u 29
tadatoshi t****i@s****u 25
Mitchell Victoriano 4****V 19
zhanghaoc 2****7@q****m 19
nimishy 1****y 18
Jonathan Goncalves j****s@g****m 13
Chengcheng Ding c****4@b****u 11
cclintris 1****3@s****n 11
Aramis a****f@g****m 10
JulianColab J****o@o****m 7
claireberschauer c****r@g****m 6
Londono l****h@p****e 6
Mars Tan j****t@u****u 6
Jose St Louis j****e@j****m 5
xmingandrew h****8@g****m 5
Elpiniki Apostolaki e****i@g****m 1
unknown s****d@s****u 1
Shixian Sheng s****2@f****u 1

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 32
Total pull requests: 173
Average time to close issues: 7 months
Average time to close pull requests: 27 days
Total issue authors: 13
Total pull request authors: 20
Average comments per issue: 1.41
Average comments per pull request: 0.5
Merged pull request: 138
Bot issues: 0
Bot pull requests: 2

Past year issues: 17
Past year pull requests: 41
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 6 days
Past year issue authors: 5
Past year pull request authors: 9
Past year average comments per issue: 1.29
Past year average comments per pull request: 0.41
Past year merged pull request: 27
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/slacgismo/solar-data-tools

Top Issue Authors

  • echedey-ls (7)
  • toddkarin (6)
  • bmeyers (5)
  • cdeline (4)
  • elsirdavid (2)
  • mat-ej (1)
  • mdeceglie (1)
  • alejandro350 (1)
  • bt- (1)
  • wholmgren (1)
  • AramisDuf (1)
  • cwhanse (1)
  • mikofski (1)

Top Pull Request Authors

  • bmeyers (65)
  • pluflou (53)
  • derins (21)
  • Thistleman (11)
  • jongoncalves (4)
  • AramisDuf (3)
  • dependabot[bot] (2)
  • MitchellAV (2)
  • nimishy (1)
  • cclintris (1)
  • KPCOFGS (1)
  • giray98 (1)
  • mxandy (1)
  • zhanghaoc (1)
  • bt- (1)

Top Issue Labels

  • enhancement (1)
  • bug (1)

Top Pull Request Labels

  • dependencies (2)
  • bug (1)

Package metadata

pypi.org: solar-data-tools

Tools for performing common tasks on solar PV data signals

  • Homepage: https://github.com/slacgismo/solar-data-tools
  • Documentation: https://solar-data-tools.readthedocs.io/
  • Licenses: BSD 2-Clause License Copyright (c) 2019, Bennet Meyers All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 1.7.1 (published 9 days ago)
  • Last Synced: 2025-04-26T14:38:50.860Z (2 days ago)
  • Versions: 57
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 7,111 Last month
  • Rankings:
    • Dependent repos count: 7.519%
    • Forks count: 9.324%
    • Dependent packages count: 10.038%
    • Average: 10.138%
    • Stargazers count: 10.341%
    • Downloads: 13.468%
  • Maintainers (1)

Dependencies

requirements.txt pypi
  • Mosek *
  • cvxpy >=1.1.0
  • jupyter *
  • matplotlib *
  • numpy >=1.22.0
  • pandas *
  • pv-system-profiler *
  • pvlib *
  • requests *
  • scikit-learn *
  • scipy *
  • seaborn *
  • statistical-clear-sky *
.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • aws-actions/configure-aws-credentials v1 composite
  • conda-incubator/setup-miniconda v2 composite

Score: 16.343170136817925