Skip to content

Commit ac70b14

Browse files
AdamRJensenAdamRJensenkandersolarcwhanse
authored
Add functions to read and retrieve SolarAnywhere irradiance data (#1497)
* Add cams.get_cams_radiation function * Revert "Add cams.get_cams_radiation function" This reverts commit d7deb80. * Add get, read, parse solaranywhere functions * Add whatsnew * Updates to get_solaranywhere * Minor doc updates * Updated default values & add POE * Properly raise start/end ValueError * Add api_key to pytest-remote-data.yml * Add test coverage * Set encoding to iso-8859-1 * Remove solaranywhere_api_key * Remove parse_solaranywhere I am removing the parse_solaranywhere function since the get_solaranywhere function is not using it (the API retrieval uses a different file structure than the downloadable fiels). * Update tests * Update error message handling * Update iotools.rst * Update v0.10.3.rst * Update __init__.py * Address code review by kandersolar * Update v0.9.2.rst * Update v0.9.2.rst * Update tests * Update flake8.yml * Update v0.10.3.rst * Update solaranywhere documentation * Add additional solaranywhere tests * Update .github/workflows/flake8.yml Co-authored-by: Kevin Anderson <[email protected]> * Implement review changes from kandersolar * Update test_solaranywhere.py * Apply suggestions from code review Co-authored-by: Cliff Hansen <[email protected]> * Switch to isinstance --------- Co-authored-by: AdamRJensen <[email protected]> Co-authored-by: Kevin Anderson <[email protected]> Co-authored-by: Cliff Hansen <[email protected]>
1 parent da4110f commit ac70b14

11 files changed

+1259
-2
lines changed

.github/workflows/flake8.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
git remote add upstream https://github.com/pvlib/pvlib-python.git
2121
git fetch upstream $GITHUB_BASE_REF
2222
- name: Run Flake8 linter
23-
run: git diff upstream/$GITHUB_BASE_REF HEAD | flake8
23+
run: git diff upstream/$GITHUB_BASE_REF HEAD -- "*.py" | flake8
2424
--exclude pvlib/version.py
2525
--ignore E201,E241,E226,W503,W504
2626
--max-line-length 79

docs/sphinx/source/reference/iotools.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ of sources and file formats relevant to solar energy modeling.
4646
iotools.get_acis_station_data
4747
iotools.get_acis_available_stations
4848
iotools.read_panond
49+
iotools.get_solaranywhere
50+
iotools.read_solaranywhere
4951
iotools.get_solcast_tmy
5052
iotools.get_solcast_historic
5153
iotools.get_solcast_forecast

docs/sphinx/source/whatsnew/v0.10.3.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ Enhancements
2020
read data from the Solcast API. (:issue:`1313`, :pull:`1875`)
2121
* Added :py:func:`~pvlib.iam.convert` and :py:func:`~pvlib.iam.fit` that
2222
convert between IAM models, and that fit an IAM model to data. (:issue:`1824`, :pull:`1827`)
23+
* Add :py:func:`pvlib.iotools.read_solaranywhere` and
24+
:py:func:`pvlib.iotools.get_solaranywhere` for reading and retrieving
25+
SolarAnywhere solar irradiance data. (:pull:`1497`, :discuss:`1310`)
2326

2427
Bug fixes
2528
~~~~~~~~~

docs/sphinx/source/whatsnew/v0.9.2.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,4 @@ Contributors
8282
* Mark Campanelli (:ghuser:`campanelli-sunpower`)
8383
* Anton Driesse (:ghuser:`adriesse`)
8484
* Kristen Wagner (:ghuser:`kwagnercpr`)
85-
* Mark Mikofski (:ghuser:`mikofski`)
85+
* Mark Mikofski (:ghuser:`mikofski`)

pvlib/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv

Lines changed: 578 additions & 0 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
0,Burlington United States,NA,-5,44.465,-73.205,41,"Data Version: 3.6 / Type: Typical Year / LatLon Resolution: 0.010 / Time Resolution: 60 minutes / Averaging Method: End of Period / TD: No / Copyright 2010-2022 Clean Power Research�, L.L.C. DownloadID=9a0a90e9-cb05-44f6-892c-a1506e8a1185"
2+
ObservationTime(LST),Global Horizontal Irradiance (GHI) W/m2,Direct Normal Irradiance (DNI) W/m2,AmbientTemperature (deg C),WindSpeed (m/s),Relative Humidity (%),Liquid Precipitation (kg/m2),Solid Precipitation (kg/m2),Snow Depth (m),Clear Sky GHI,Clear Sky DNI,Clear Sky DHI,IrradianceObservationType,LeadTime,DataVersion,ObservationTime(GMT),Diffuse Horizontal Irradiance (DIF) W/m2,AmbientTemperatureObservationType,WindSpeedObservationType,Albedo,Particulate Matter 10 (�g/m3),Particulate Matter 2.5 (�g/m3)
3+
01/01/2000 01:00,0,0,-6,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 06:00,0,O,O,,,
4+
01/01/2000 02:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 07:00,0,O,O,,,
5+
01/01/2000 03:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 08:00,0,O,O,,,
6+
01/01/2000 04:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 09:00,0,O,O,,,
7+
01/01/2000 05:00,0,0,-5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 10:00,0,O,O,,,
8+
01/01/2000 06:00,0,0,-4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 11:00,0,O,O,,,
9+
01/01/2000 07:00,0,0,-4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 12:00,0,O,O,,,
10+
01/01/2000 08:00,3,1,-3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 13:00,3,O,O,,,
11+
01/01/2000 09:00,50,24,-3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 14:00,47,O,O,,,
12+
01/01/2000 10:00,171,245,-2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 15:00,109,O,O,,,
13+
01/01/2000 11:00,234,237,-2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 16:00,154,O,O,,,
14+
01/01/2000 12:00,220,168,-2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 17:00,156,O,O,,,
15+
01/01/2000 13:00,202,107,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 18:00,162,O,O,,,
16+
01/01/2000 14:00,122,41,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 19:00,108,O,O,,,
17+
01/01/2000 15:00,141,165,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 20:00,101,O,O,,,
18+
01/01/2000 16:00,65,101,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 21:00,53,O,O,,,
19+
01/01/2000 17:00,2,1,4,,,,,,,,,AD,,SolarAnywhereTGY2021,01/01/2000 22:00,2,O,O,,,
20+
01/01/2000 18:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/01/2000 23:00,0,O,O,,,
21+
01/01/2000 19:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 00:00,0,O,O,,,
22+
01/01/2000 20:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 01:00,0,O,O,,,
23+
01/01/2000 21:00,0,0,2,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 02:00,0,O,O,,,
24+
01/01/2000 22:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 03:00,0,O,O,,,
25+
01/01/2000 23:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 04:00,0,O,O,,,
26+
01/02/2000 00:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 05:00,0,O,O,,,
27+
01/02/2000 01:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 06:00,0,O,O,,,
28+
01/02/2000 02:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 07:00,0,O,O,,,
29+
01/02/2000 03:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 08:00,0,O,O,,,
30+
01/02/2000 04:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 09:00,0,O,O,,,
31+
01/02/2000 05:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 10:00,0,O,O,,,
32+
01/02/2000 06:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 11:00,0,O,O,,,
33+
01/02/2000 07:00,0,0,0,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 12:00,0,O,O,,,
34+
01/02/2000 08:00,2,0,0,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 13:00,2,O,O,,,
35+
01/02/2000 09:00,48,23,0,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 14:00,45,O,O,,,
36+
01/02/2000 10:00,105,29,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 15:00,98,O,O,,,
37+
01/02/2000 11:00,161,53,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 16:00,143,O,O,,,
38+
01/02/2000 12:00,135,5,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 17:00,133,O,O,,,
39+
01/02/2000 13:00,108,0,4,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 18:00,108,O,O,,,
40+
01/02/2000 14:00,72,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 19:00,72,O,O,,,
41+
01/02/2000 15:00,58,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 20:00,58,O,O,,,
42+
01/02/2000 16:00,33,3,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 21:00,33,O,O,,,
43+
01/02/2000 17:00,2,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/02/2000 22:00,2,O,O,,,
44+
01/02/2000 18:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/02/2000 23:00,0,O,O,,,
45+
01/02/2000 19:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 00:00,0,O,O,,,
46+
01/02/2000 20:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 01:00,0,O,O,,,
47+
01/02/2000 21:00,0,0,4,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 02:00,0,O,O,,,
48+
01/02/2000 22:00,0,0,5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 03:00,0,O,O,,,
49+
01/02/2000 23:00,0,0,5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 04:00,0,O,O,,,
50+
01/03/2000 00:00,0,0,5,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 05:00,0,O,O,,,
51+
01/03/2000 01:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 06:00,0,O,O,,,
52+
01/03/2000 02:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 07:00,0,O,O,,,
53+
01/03/2000 03:00,0,0,6,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 08:00,0,O,O,,,
54+
01/03/2000 04:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 09:00,0,O,O,,,
55+
01/03/2000 05:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 10:00,0,O,O,,,
56+
01/03/2000 06:00,0,0,6,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 11:00,0,O,O,,,
57+
01/03/2000 07:00,0,0,7,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 12:00,0,O,O,,,
58+
01/03/2000 08:00,4,0,7,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 13:00,4,O,O,,,
59+
01/03/2000 09:00,47,7,8,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 14:00,46,O,O,,,
60+
01/03/2000 10:00,124,86,5,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 15:00,102,O,O,,,
61+
01/03/2000 11:00,99,6,4,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 16:00,97,O,O,,,
62+
01/03/2000 12:00,116,0,3,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 17:00,116,O,O,,,
63+
01/03/2000 13:00,130,1,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 18:00,130,O,O,,,
64+
01/03/2000 14:00,165,96,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 19:00,133,O,O,,,
65+
01/03/2000 15:00,110,47,2,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 20:00,98,O,O,,,
66+
01/03/2000 16:00,36,5,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 21:00,35,O,O,,,
67+
01/03/2000 17:00,1,0,1,,,,,,,,,AD,,SolarAnywhereTGY2021,01/03/2000 22:00,1,O,O,,,
68+
01/03/2000 18:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/03/2000 23:00,0,O,O,,,
69+
01/03/2000 19:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 00:00,0,O,O,,,
70+
01/03/2000 20:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 01:00,0,O,O,,,
71+
01/03/2000 21:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 02:00,0,O,O,,,
72+
01/03/2000 22:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 03:00,0,O,O,,,
73+
01/03/2000 23:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 04:00,0,O,O,,,
74+
01/04/2000 00:00,0,0,-1,,,,,,,,,AN,,SolarAnywhereTGY2021,01/04/2000 05:00,0,O,O,,,

pvlib/data/variables_style_rules.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ latitude;latitude
44
longitude;longitude
55
dni;direct normal irradiance
66
dni_extra;direct normal irradiance at top of atmosphere (extraterrestrial)
7+
dni_clear;clear sky direct normal irradiance
78
dhi;diffuse horizontal irradiance
89
bhi;beam/direct horizontal irradiance
910
ghi;global horizontal irradiance

pvlib/iotools/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
from pvlib.iotools.acis import get_acis_mpe # noqa: F401
2828
from pvlib.iotools.acis import get_acis_station_data # noqa: F401
2929
from pvlib.iotools.acis import get_acis_available_stations # noqa: F401
30+
from pvlib.iotools.solaranywhere import get_solaranywhere # noqa: F401
31+
from pvlib.iotools.solaranywhere import read_solaranywhere # noqa: F401
3032
from pvlib.iotools.solcast import get_solcast_forecast # noqa: F401
3133
from pvlib.iotools.solcast import get_solcast_live # noqa: F401
3234
from pvlib.iotools.solcast import get_solcast_historic # noqa: F401

0 commit comments

Comments
 (0)