8000 Snow coverage model from SAM by JPalakapillyKWH · Pull Request #764 · pvlib/pvlib-python · GitHub
[go: up one dir, main page]

Skip to content

Snow coverage model from SAM #764

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 163 commits into from
Mar 28, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
bea249f
added snow_model code. Needs formatting
JPalakapillyKWH Aug 8, 2019
a931096
starting numpy-ification
JPalakapillyKWH Aug 8, 2019
ca285d7
minor changes
JPalakapillyKWH Aug 9, 2019
f7acc74
added tests and made model faster
JPalakapillyKWH Aug 13, 2019
9a7964b
finished tests.
JPalakapillyKWH Aug 13, 2019
67cff8b
fixed lint errors.
JPalakapillyKWH Aug 13, 2019
97565bf
fixed minor lint error
JPalakapillyKWH Aug 14, 2019
78ac66a
fixed bug where model stopped prematurely
JPalakapillyKWH Aug 15, 2019
a2ccd92
docstring changes mostly. Changed the location of division by 10 for …
JPalakapillyKWH Aug 16, 2019
4d65294
fixed tests to account 10000 for prev change
JPalakapillyKWH Aug 16, 2019
bcd8c37
fixed docstring for snow slide amount
JPalakapillyKWH Aug 16, 2019
8edfffe
docstring edits, move some functions to private
cwhanse Feb 7, 2020
cf71e2a
Merge branch 'master' of https://github.com/pvlib/pvlib-python into s…
cwhanse Feb 7, 2020
43d21cd
rewrite, reduce helpers, remove while loop
cwhanse Feb 13, 2020
1b5dcb1
rename functions, review responses, add subhourly test
cwhanse Feb 14, 2020
7b7edfe
fixes
cwhanse Feb 14, 2020
c5ac03b
temperature -> temp_air, test correction, fix default for m
cwhanse Feb 14, 2020
b9f1988
put m=-80 back
cwhanse Feb 14, 2020
04a0b15
edits for threshold, use first data point
cwhanse Mar 2, 2020
109fa7d
add initial snow, better logic for coverage events
cwhanse Mar 4, 2020
436c8d1
lint, text fix
cwhanse Mar 4, 2020
92d693c
workaround for py35/pandas 0.23.4
cwhanse Mar 5, 2020
b5a9fb9
move line
cwhanse Mar 5, 2020
7116cd2
improve comments
cwhanse Mar 6, 2020
54f7a5e
improvements from review
cwhanse Mar 6, 2020
63c2f58
improve docstring
cwhanse Mar 6, 2020
c766e9a
reorder comparison, add missing inplace
cwhanse Mar 6, 2020
4c25f2a
correct test, cut/paste error
cwhanse Mar 6, 2020
6c6c663
vectorize
cwhanse Mar 9, 2020
7689ef6
correct .clip
cwhanse Mar 9, 2020
47c26da
function and file renaming
cwhanse Mar 10, 2020
ff2ca66
Merge branch 'master' of https://github.com/pvlib/pvlib-python into s…
cwhanse Mar 10, 2020
3a04ccd
docstring corrections, replace hack with pandas offset
cwhanse Mar 13, 2020
10cd8f2
refactor bifacial merge, improve merge tests (#747)
alexandermorgan Jul 20, 2019
733e489
Implement IEC 61853 IAM calculations (#752)
adriesse Jul 26, 2019
2f6376e
remove python 2 lines (#757)
alexandermorgan Jul 26, 2019
16bdde9
fix rounding issue in linke turbidity lookup function (#755)
alexandermorgan Aug 1, 2019
c4091cc
edit DIRINDEX docstring (#760)
cwhanse Aug 6, 2019
1ac666d
added snow_model code. Needs formatting
JPalakapillyKWH Aug 8, 2019
0b6236a
starting numpy-ification
JPalakapillyKWH Aug 8, 2019
ad48714
minor changes
JPalakapillyKWH Aug 9, 2019
edb1b1e
added tests and made model faster
JPalakapillyKWH Aug 13, 2019
8f59d8b
finished tests.
JPalakapillyKWH Aug 13, 2019
0352814
fixed lint errors.
JPalakapillyKWH Aug 13, 2019
d970d20
fixed minor lint error
JPalakapillyKWH Aug 14, 2019
6fa5c95
fixed bug where model stopped prematurely
JPalakapillyKWH Aug 15, 2019
81f2c85
docstring changes mostly. Changed the location of division by 10 for …
JPalakapillyKWH Aug 16, 2019
2e13c1b
fixed tests to account for prev change
JPalakapillyKWH Aug 16, 2019
62f5df6
fixed docstring for snow slide amount
JPalakapillyKWH Aug 16, 2019
2858799
Add recombination current params to all bishop88 functions (#763)
adriesse Aug 28, 2019
539402c
Raise if no parameters provided to retrieve_sam() (#770) (#775)
Peque Aug 28, 2019
04083bf
refactor cec test data into fixtures (#774)
Peque Aug 29, 2019
3052442
remove functions marked for 0.7 removal (#772)
wholmgren Aug 29, 2019
bf79511
move celltemp functions to celltemp.py, expose celltemp.pvsyst in Mod…
cwhanse Sep 9, 2019
f5f776a
Update module and inverter files (#761) (#767)
Peque Sep 9, 2019
81f78d5
refactor repeated code in ModelChain singlediode and LocalizedPVSyste…
Peque Sep 9, 2019
f1b0c5a
Create ivtools (#718)
cwhanse Sep 11, 2019
b75909c
clean up whatsnew after #718 merge (#778)
cwhanse Sep 11, 2019
724ac68
ModelChain 0.7 deprecations, remove times kwarg (#773)
wholmgren Sep 16, 2019
cabc6c8
add timeout to get_psm3 (#741)
cwhanse Sep 16, 2019
fc179a4
Update forecast.py comment typo
aperetti Sep 23, 2019
468e42d
Get rid of `re` deprecation warnings (#787)
Peque Oct 10, 2019
ee7ef7a
Fix documentation references to inverter/module data (#791)
veronicaguo Oct 18, 2019
53d4654
Create iam.py, consistent naming for IAM functions (#783)
cwhanse Oct 18, 2019
743a4fb
add bare environment CI tests (#790)
wholmgren Oct 21, 2019
9d7683e
handle warnings from temperature model tests (#796)
cwhanse Oct 23, 2019
bf29887
replace Pandas item() implementation with numpy's using .values (#797)
CameronTStark Oct 24, 2019
6bfc18b
mark xfail of test_get_psm3 (#803)
CameronTStark Oct 29, 2019
029cf20
coefficient estimation method following DeSoto(2006) (#784)
tylunel Oct 31, 2019
dac54de
change tools._scalar_out/_array_out arg name to avoid collision with …
CameronTStark Oct 31, 2019
1b6e62d
Implement IEC 61853 IAM calculations for diffuse irradiance (#793)
adriesse Nov 2, 2019
e6c33dd
add macOS 10.14 Mojave to Azure Pipelines CI (#812)
cwhanse Nov 5, 2019
2305603
update readme docs to stable
wholmgren Nov 5, 2019
c0fda4f
Add note clearksky Ineichen term b (#814)
cedricleroy Nov 7, 2019
4250d71
Drop DataFrame as option for `module` input to pvsystem.sapm (#811)
cwhanse Nov 7, 2019
4f6584a
Don't expose model parameter dictionaries to users (#805)
veronicaguo Nov 13, 2019
f6b0e41
* Fix for issue #782 (#816)
tylunel Nov 14, 2019
bcbd29f
Add shield organization table with download shields (#820)
CameronTStark Nov 15, 2019
bef5866
fix reading MIDC files with mismatching header/data columns (#822)
alorenzo175 Nov 19, 2019
8792b60
Change units on SAPM effective irradiance from suns to W/m2 (#815)
cwhanse Nov 26, 2019
69e340f
fix handful of documentation warnings (#819)
wholmgren Nov 26, 2019
6a48f94
update contributing documentation, pr template (#818)
wholmgren Nov 26, 2019
54d535b
import bifacial module in __init__.py (#826)
wholmgren Nov 27, 2019
b5bdcce
Put SAM product renaming code in a separate function, simplify, add w…
adriesse Nov 27, 2019
ad12c56
Create scaling.py and implement WVM model (#807)
jranalli Dec 2, 2019
35daed1
Fix typo in TMY total sky cover uncertainty column name (#831)
hamiltonkibbe Dec 6, 2019
673490c
Location object creation from epw metadata (#821)
tylunel Dec 12, 2019
c52bc77
Implement IEC 61853 module temperature model (#834)
adriesse Dec 13, 2019
dd72dcd
update to numpy-1.12.0 (#830)
mikofski Dec 13, 2019
06de0aa
Docstring formatting (#833)
kevinsa5 Dec 16, 2019
2be01f0
*– Formatting of ModelChain.diode_params in pandas.DataFrame (#832)
tylunel Dec 17, 2019
3b6b7db
update whatsnew.rst, add contributors, v0.7.0 release date, address #…
CameronTStark Dec 18, 2019
7b9f922
change overlooked irradiance.total_irrad references to irradiance.get…
kandersolar Dec 23, 2019
92adcfc
refactor get_psm3 code into parse_psm3, read_psm3 (#842)
kandersolar Jan 3, 2020
cb131d6
Fix error in the irradiance unit checker. (#844)
dzimmanck Jan 9, 2020
02a604d
Add gallery of examples using sphinx-gallery (#846)
kandersolar Jan 10, 2020
ae18625
add pvgis to iotools (#845)
mikofski Jan 10, 2020
0b0f097
fix table line lengtsh, remove #noqa, use grid (#852)
mikofski Jan 10, 2020
dd504f6
Improves sapm deprecation warning checker (#854)
cwhanse Jan 12, 2020
c20d443
improve solpos tz requirements documentation (#853)
wholmgren Jan 13, 2020
618fe26
DOC: remove superscript formatting for citation callouts (#855)
kandersolar Jan 13, 2020
b5ab200
reorganize tests into subfolders and use pathlib for conftest DATA_DI…
mikofski Jan 16, 2020
e981839
add Boyle/Coello (Humboldt State Univ) soiling model (#850)
nappaillav Jan 17, 2020
e124175
update whats new for #844 and other contributors (#851)
wholmgren Jan 18, 2020
8da7354
add numfocus affiliation to sphinx docs (#862)
mikofski Jan 22, 2020
18c475f
fix tmy3 leapyear in February handling, coerce_year raises exception …
mikofski Jan 29, 2020
13500d2
Update for PySAM 2.0 (#874)
cwhanse Feb 6, 2020
08f5f19
docstring edits, move some functions to private
cwhanse Feb 7, 2020
1200266
make test_psm3.py robust to API overuse errors (#873)
CameronTStark Feb 10, 2020
578a70f
Fix backwards path sep (#876)
mikofski Feb 11, 2020
1c12459
forecast compat with pandas 1.0, fix bug in Location tz handling (#879)
wholmgren Feb 12, 2020
6c2372f
remove needs_pandas decorator (#885)
CameronTStark Feb 13, 2020
551331a
rewrite, reduce helpers, remove while loop
cwhanse Feb 13, 2020
0c9f848
Add calcparams_desoto+singlediode example to gallery (#872)
kandersolar Feb 14, 2020
8343212
fix documentation home page title (#890)
CameronTStark Feb 14, 2020
3661d86
rename functions, review responses, add subhourly test
cwhanse Feb 14, 2020
f3a2eec
fixes
cwhanse Feb 14, 2020
e80763c
temperature -> temp_air, test correction, fix default for m
cwhanse Feb 14, 2020
b92efee
put m=-80 back
cwhanse Feb 14, 2020
da22506
add Kimber soiling model (#860)
mikofski Feb 15, 2020
238acc6
move contents of 0.6.4 whatsnew into 0.7.0 whatsnew (#899)
wholmgren Feb 21, 2020
7ee7cc6
compatibility for cftime==1.1 (#900)
wholmgren Feb 21, 2020
76309cc
Use pytest remotedata (#896)
CameronTStark Feb 21, 2020
ea286cb
Include Python3.8 into Azure Pipelines (#904)
CameronTStark Feb 22, 2020
4104062
eliminate some of the test suite warnings (#906)
wholmgren Feb 24, 2020
1441d51
Add Contributing section about gallery examples (#905)
kandersolar Feb 24, 2020
23e9ef7
Expose temperature.faiman in PVSystem and ModelChain (#897)
kandersolar Feb 25, 2020
02926a5
Rename test_modelchain system fixture (#915)
veronicaguo Feb 26, 2020
f3d286c
BLD: build docs on Azure Pipelines (#909)
CameronTStark Feb 26, 2020
f70377b
fix read_tmy3 with year coerced not monotonic, breaks soiling (#910)
mikofski Feb 29, 2020
5788223
add read pvgis tmy (#907)
mikofski Mar 1, 2020
a341fd2
TST: make iotools tests robust to API downtime (#919)
CameronTStark Mar 2, 2020
891158a
Link to code of conduct (#922)
mikofski Mar 2, 2020
67f6537
edits for threshold, use first data point
cwhanse Mar 2, 2020
00bda7a
Fix most sphinx warnings (#912)
kandersolar Mar 3, 2020
7524ba8
Fancy "view on github" links in documentation (#913)
kandersolar Mar 3, 2020
52ff419
add initial snow, better logic for coverage events
cwhanse Mar 4, 2020
649a6a5
lint, text fix
cwhanse Mar 4, 2020
d183fae
TST: Use templates in Azure Pipelines config file (#926)
wholmgren Mar 4, 2020
06a3ae7
workaround for py35/pandas 0.23.4
cwhanse Mar 5, 2020
380a576
move line
cwhanse Mar 5, 2020
29e1772
improve comments
cwhanse Mar 6, 2020
1c2ad4f
improvements from review
cwhanse Mar 6, 2020
87288cf
improve docstring
cwhanse Mar 6, 2020
9eb70a9
reorder comparison, add missing inplace
cwhanse Mar 6, 2020
bf42c8f
correct test, cut/paste error
cwhanse Mar 6, 2020
82e94a4
vectorize
cwhanse Mar 9, 2020
b6919b2
correct .clip
cwhanse Mar 9, 2020
14e1390
function and file renaming
cwhanse Mar 10, 2020
21e1086
docstring corrections, replace hack with pandas offset
cwhanse Mar 13, 2020
04ded05
Merge branch 'snow_coverage_model' of https://github.com/JPalakapilly…
cwhanse Mar 18, 2020
4aaa6f1
update api.rst, whatsnew
cwhanse Mar 18, 2020
fc68b91
Merge branch 'master' of https://github.com/pvlib/pvlib-python into s…
cwhanse Mar 18, 2020
af1a2ac
fix headings
cwhanse Mar 18, 2020
aa6bbba
change to use pandas to_offset method
cwhanse Mar 19, 2020
4989c02
Update docs/sphinx/source/api.rst
cwhanse Mar 19, 2020
a41561b
Update docs/sphinx/source/whatsnew/v0.7.2.rst
cwhanse Mar 19, 2020
31ed477
Update pvlib/snow.py
cwhanse Mar 19, 2020
e37eda0
review comments
cwhanse Mar 19, 2020
86599f4
Merge branch 'snow_coverage_model' of https://github.com/JPalakapilly…
cwhanse Mar 19, 2020
21c6813
add snow to __init__.py
cwhanse Mar 19, 2020
bf66c37
add test for irregular times
cwhanse Mar 19, 2020
ae476ed
correct user name
cwhanse Mar 19, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use pytest remotedata (#896)
* enable pytest_remotedata for psm3

* add pytest_remotedata to test_pvgis.py

* add @pytest.mark.remote_data to other network dependent tests

* use up-to-date numpy, pandas

* install netcdf4 from pip instead of conda

* install pytest-remotedata from pip for conda 3.5

* readd @network to test_midc.py

* add pytest-remotedata to py35-min for travis

* add to what's new

* point coverage at run with --remote-data

* add --remote-data to travis run for coveralls to pickup

* Revert "point coverage at run with --remote-data"

This reverts commit e73eeb0.

* Update docs/sphinx/source/whatsnew/v0.7.2.rst

Co-Authored-By: Will Holmgren <william.holmgren@gmail.com>

* Update docs/sphinx/source/whatsnew/v0.7.2.rst

Co-Authored-By: Will Holmgren <william.holmgren@gmail.com>

* Revert "install netcdf4 from pip instead of conda"

This reverts commit 6fa8ecf.

* fix linelength in what's new

* add pytest-remotedata to Azure MacOS

* move --remote-data tests to conda_linux

* add remote_data decorators to tests requiring network

* only install pytest-remotedata from pip, explain

* fix tests directory name and url

* document use of --remote-data flag in Contributing>Testing

Co-authored-by: Will Holmgren <william.holmgren@gmail.com>
  • Loading branch information
2 people authored and cwhanse committed Mar 18, 2020
commit 76309cc317dcd8267887db04b6593480e5b38e4f
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ install:
- pip install -e .

script:
- pytest pvlib --cov=pvlib --cov-report term-missing
- pytest pvlib --remote-data --cov=pvlib --cov-report term-missing

after_script:
- if [[ $TASK == "coverage" ]]; then
Expand Down
9 changes: 3 additions & 6 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,8 @@ jobs:
versionSpec: '$(python.version)'

- script: |
pip install pytest pytest-cov pytest-mock pytest-timeout pytest-azurepipelines pytest-rerunfailures
pip install pytest pytest-cov pytest-mock pytest-timeout pytest-azurepipelines pytest-rerunfailures pytest-remotedata
pip install -e .
export NREL_API_KEY=$(nrelApiKey)
pytest pvlib --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
displayName: 'Test with pytest'

Expand Down Expand Up @@ -77,7 +76,7 @@ jobs:
- script: |
source activate test_env
export NREL_API_KEY=$(nrelApiKey)
pytest pvlib --junitxml=junit/test-results.xml --cov --cov-report=xml --cov-report=html
pytest pvlib --remote-data --junitxml=junit/test-results.xml --cov --cov-report=xml --cov-report=html
displayName: 'pytest'
# - script: |
# source activate test_env
Expand Down Expand Up @@ -129,7 +128,6 @@ jobs:
displayName: 'List installed dependencies'
- script: |
call activate test_env
set NREL_API_KEY=$(nrelApiKey)
pytest pvlib --junitxml=junit/test-results.xml
displayName: 'pytest'
- task: PublishTestResults@2
Expand Down Expand Up @@ -157,9 +155,8 @@ jobs:
versionSpec: '$(python.version)'

- script: |
pip install pytest pytest-cov pytest-mock pytest-timeout pytest-azurepipelines pytest-rerunfailures
pip install pytest pytest-cov pytest-mock pytest-timeout pytest-azurepipelines pytest-rerunfailures pytest-remotedata
pip install -e .
export NREL_API_KEY=$(nrelApiKey)
pytest pvlib --junitxml=junit/test-results.xml --cov=pvlib --cov-report=xml --cov-report=html
displayName: 'Test with pytest'

Expand Down
1 change: 1 addition & 0 deletions ci/requirements-py35-min.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ dependencies:
- numpy==1.12.0
- pandas==0.18.1
- pytest-rerunfailures # conda version is >3.6
- pytest-remotedata # conda package is 0.3.0, needs > 0.3.1
1 change: 1 addition & 0 deletions ci/requirements-py35.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,4 @@ dependencies:
- nrel-pysam>=2.0
- pvfactors==1.0.1
- pytest-rerunfailures # conda version is >3.6
- pytest-remotedata # needs > 0.3.1
1 change: 1 addition & 0 deletions ci/requirements-py36.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ dependencies:
- pytest-cov
- pytest-mock
- pytest-rerunfailures
- pytest-remotedata
- pytest-timeout
- python=3.6
- pytz
Expand Down
1 change: 1 addition & 0 deletions ci/requirements-py37.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ dependencies:
- pytest-mock
- pytest-timeout
- pytest-rerunfailures
- pytest-remotedata
- python=3.7
- pytz
- requests
Expand Down
10 changes: 9 additions & 1 deletion docs/sphinx/source/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ Testing
Developers **must** include comprehensive tests for any additions or
modifications to pvlib. New unit test code should be placed in the
corresponding test module in the
`pvlib/test <https://github.com/pvlib/pvlib-python/tree/master/pvlib/test>`_
`pvlib/tests <https://github.com/pvlib/pvlib-python/tree/master/pvlib/tests>`_
directory.

A pull request will automatically run the tests for you on a variety of
Expand Down Expand Up @@ -298,6 +298,14 @@ location of a test failure. As described in :ref:`code-style`, pvlib
code does not use ``print`` or ``logging`` calls, and this also applies
to the test suite (with rare exceptions).

To include all network-dependent tests, include the ``--remote-data`` flag to
your ``pytest`` call:

``pytest pvlib --remote-data``

And consider adding ``@pytest.mark.remote_data`` to any network dependent test
you submit for a PR.

pvlib-python contains 3 "layers" of code: functions, PVSystem/Location,
and ModelChain. Contributors will need to add tests that correspond to
the layers that they modify.
Expand Down
6 changes: 5 additions & 1 deletion docs/sphinx/source/whatsnew/v0.7.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,16 @@ Bug fixes
passing ``tz=datetime.timezone.utc`` (:pull:`879`)
* Fix documentation homepage title to "pvlib python" based on first heading on
the page. (:pull:`890`) (:issue:`888`)
* Implement `pytest-remotedata <https://github.com/astropy/pytest-remotedata>`_
to increase test suite speed. Requires ``--remote-data`` pytest flag to
execute data retrieval tests over a network.
* Fix missing
`0.7.0 what's new <https://pvlib-python.readthedocs.io/en/stable/whatsnew.html#v0-7-0-december-18-2019>`_
entries about changes to ``PVSystem.pvwatts_ac``. Delete unreleased
0.6.4 what's new file. (:issue:`898`)
* Compatibility with cftime 1.1. (:issue:`895`)


Documentation
~~~~~~~~~~~~~
* Add NumFOCUS affiliation to Sphinx documentation :pull:`862`
Expand All @@ -47,4 +51,4 @@ Contributors
* Cameron T. Stark (:ghuser:`camerontstark`)
* Will Holmgren (:ghuser:`wholmgren`)
* Kevin Anderson (:ghuser:`kanderso-nrel`)
* Karthikeyan Singaravelan (:ghuser:`tirkarthi`)
* Karthikeyan Singaravelan (:ghuser:`tirkarthi`)
2 changes: 2 additions & 0 deletions pvlib/tests/iotools/test_epw.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from pandas.util.testing import network
import pytest

from pvlib.iotools import epw
from conftest import DATA_DIR
Expand All @@ -11,6 +12,7 @@ def test_read_epw():


@network
@pytest.mark.remote_data
def test_read_epw_remote():
url = 'https://energyplus.net/weather-download/europe_wmo_region_6/NLD//NLD_Amsterdam.062400_IWEC/NLD_Amsterdam.062400_IWEC.epw'
epw.read_epw(url)
Expand Down
1 change: 1 addition & 0 deletions pvlib/tests/iotools/test_midc.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ def test_read_midc_var_mapping_as_arg(test_mapping):


@network
@pytest.mark.remote_data
def test_read_midc_raw_data_from_nrel():
start_ts = pd.Timestamp('20181018')
end_ts = pd.Timestamp('20181019')
Expand Down
4 changes: 4 additions & 0 deletions pvlib/tests/iotools/test_psm3.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def assert_psm3_equal(header, data, expected):
assert (data.index.tzinfo.zone == 'Etc/GMT%+d' % -header['Time Zone'])


@pytest.mark.remote_data
@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_get_psm3_tmy(nrel_api_key):
"""test get_psm3 with a TMY"""
Expand All @@ -79,6 +80,7 @@ def test_get_psm3_tmy(nrel_api_key):
assert_psm3_equal(header, data, expected)


@pytest.mark.remote_data
@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_get_psm3_singleyear(nrel_api_key):
"""test get_psm3 with a single year"""
Expand All @@ -88,6 +90,7 @@ def test_get_psm3_singleyear(nrel_api_key):
assert_psm3_equal(header, data, expected)


@pytest.mark.remote_data
@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_get_psm3_check_leap_day(nrel_api_key):
_, data_2012 = psm3.get_psm3(LATITUDE, LONGITUDE, nrel_api_key,
Expand All @@ -102,6 +105,7 @@ def test_get_psm3_check_leap_day(nrel_api_key):
(LATITUDE, LONGITUDE, nrel_api_key, 'bad', 60),
(LATITUDE, LONGITUDE, nrel_api_key, '2017', 15),
])
@pytest.mark.remote_data
@pytest.mark.flaky(reruns=5, reruns_delay=2)
def test_get_psm3_tmy_errors(
latitude, longitude, api_key, names, interval
Expand Down
6 changes: 6 additions & 0 deletions pvlib/tests/iotools/test_pvgis.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def csv_meta(meta_expected):
in meta_expected['outputs']['tmy_hourly']['variables'].items()]


@pytest.mark.remote_data
def test_get_pvgis_tmy(expected, month_year_expected, inputs_expected,
meta_expected):
data, months_selected, inputs, meta = get_pvgis_tmy(45, 8)
Expand All @@ -92,6 +93,7 @@ def test_get_pvgis_tmy(expected, month_year_expected, inputs_expected,
assert meta == meta_expected


@pytest.mark.remote_data
def test_get_pvgis_tmy_kwargs(userhorizon_expected):
_, _, inputs, _ = get_pvgis_tmy(45, 8, usehorizon=False)
assert inputs['meteo_data']['use_horizon'] is False
Expand All @@ -109,13 +111,15 @@ def test_get_pvgis_tmy_kwargs(userhorizon_expected):
assert inputs['meteo_data']['year_max'] == 2016


@pytest.ma 8000 rk.remote_data
def test_get_pvgis_tmy_basic(expected, meta_expected):
data, _, _, _ = get_pvgis_tmy(45, 8, outputformat='basic')
# check each column of output separately
for outvar in meta_expected['outputs']['tmy_hourly']['variables'].keys():
assert np.allclose(data[outvar], expected[outvar])


@pytest.mark.remote_data
def test_get_pvgis_tmy_csv(expected, month_year_expected, inputs_expected,
meta_expected, csv_meta):
data, months_selected, inputs, meta = get_pvgis_tmy(
Expand All @@ -138,6 +142,7 @@ def test_get_pvgis_tmy_csv(expected, month_year_expected, inputs_expected,
assert meta_value in csv_meta


@pytest.mark.remote_data
def test_get_pvgis_tmy_epw(expected, epw_meta):
data, _, _, meta = get_pvgis_tmy(
45, 8, outputformat='epw')
Expand All @@ -148,6 +153,7 @@ def test_get_pvgis_tmy_epw(expected, epw_meta):
assert meta == epw_meta


@pytest.mark.remote_data
def test_get_pvgis_tmy_error():
err_msg = 'outputformat: Incorrect value.'
with pytest.raises(requests.HTTPError, match=err_msg):
Expand Down
5 changes: 5 additions & 0 deletions pvlib/tests/iotools/test_srml.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ def test_read_srml():


@network
@pytest.mark.remote_data
def test_read_srml_remote():
srml.read_srml('http://solardat.uoregon.edu/download/Archive/EUPO1801.txt')

Expand All @@ -40,6 +41,7 @@ def test_read_srml_nans_exist():
('http://solardat.uoregon.edu/download/Archive/EUPO1612.txt',
2016, 12),
])
@pytest.mark.remote_data
def test_read_srml_dt_index(url, year, month):
data = srml.read_srml(url)
start = pd.Timestamp('{:04d}{:02d}01 00:00'.format(year, month))
Expand All @@ -63,6 +65,7 @@ def test_map_columns(column, expected):


@network
@pytest.mark.remote_data
def test_read_srml_month_from_solardat():
url = 'http://solardat.uoregon.edu/download/Archive/EUPO1801.txt'
file_data = srml.read_srml(url)
Expand All @@ -71,6 +74,7 @@ def test_read_srml_month_from_solardat():


@network
@pytest.mark.remote_data
def test_15_minute_dt_index():
data = srml.read_srml_month_from_solardat('TW', 2019, 4, 'RQ')
start = pd.Timestamp('20190401 00:00')
Expand All @@ -83,6 +87,7 @@ def test_15_minute_dt_index():


@network
@pytest.mark.remote_data
def test_hourly_dt_index():
data = srml.read_srml_month_from_solardat('CD', 1986, 4, 'PH')
start = pd.Timestamp('19860401 00:00')
Expand Down
2 changes: 2 additions & 0 deletions pvlib/tests/iotools/test_surfrad.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import pandas as pd
from pandas.util.testing import network
import pytest

from pvlib.iotools import surfrad
from conftest import DATA_DIR
Expand All @@ -10,6 +11,7 @@


@network
@pytest.mark.remote_data
def test_read_surfrad_network():
# If this test begins failing, SURFRAD's data structure or data
# archive may have changed.
Expand Down
2 changes: 2 additions & 0 deletions pvlib/tests/iotools/test_tmy.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from pandas.util.testing import network
import numpy as np
import pandas as pd
import pytest
from pvlib.iotools import tmy
from conftest import DATA_DIR

Expand All @@ -17,6 +18,7 @@ def test_read_tmy3():


@network
@pytest.mark.remote_data
def test_read_tmy3_remote():
url = 'http://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/data/tmy3/703165TYA.CSV'
tmy.read_tmy3(url)
Expand Down
7 changes: 7 additions & 0 deletions pvlib/tests/test_forecast.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ def model(request):


@requires_siphon
@pytest.mark.remote_data
def test_process_data(model):
for how in ['liujordan', 'clearsky_scaling']:
if model.raw_data.empty:
Expand All @@ -75,6 +76,7 @@ def test_process_data(model):


@requires_siphon
@pytest.mark.remote_data
def test_bad_kwarg_get_data():
# For more information on why you would want to pass an unknown keyword
# argument, see Github issue #745.
Expand All @@ -85,6 +87,7 @@ def test_bad_kwarg_get_data():


@requires_siphon
@pytest.mark.remote_data
def test_bad_kwarg_get_processed_data():
# For more information on why you would want to pass an unknown keyword
# argument, see Github issue #745.
Expand All @@ -95,6 +98,7 @@ def test_bad_kwarg_get_processed_data():


@requires_siphon
@pytest.mark.remote_data
def test_how_kwarg_get_processed_data():
amodel = NAM()
data = amodel.get_processed_data(_latitude, _longitude, _start, _end,
E0E5 Expand All @@ -103,6 +107,7 @@ def test_how_kwarg_get_processed_data():


@requires_siphon
@pytest.mark.remote_data
def test_vert_level():
amodel = NAM()
vert_level = 5000
Expand All @@ -111,6 +116,7 @@ def test_vert_level():


@requires_siphon
@pytest.mark.remote_data
def test_datetime():
amodel = NAM()
start = datetime.now(tz=timezone.utc)
Expand All @@ -119,6 +125,7 @@ def test_datetime():


@requires_siphon
@pytest.mark.remote_data
def test_queryvariables():
amodel = GFS()
new_variables = ['u-component_of_wind_height_above_ground']
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
'pytz',
'requests']
TESTS_REQUIRE = ['nose', 'pytest', 'pytest-cov', 'pytest-mock',
'pytest-timeout', 'pytest-rerunfailures']
'pytest-timeout', 'pytest-rerunfailures', 'pytest-remotedata']
EXTRAS_REQUIRE = {
'optional': ['ephem', 'cython', 'netcdf4', 'nrel-pysam', 'numba',
'pvfactors', 'scipy', 'siphon', 'tables'],
Expand Down
0