Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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 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
forecast compat with pandas 1.0, fix bug in Location tz handling (#879)
* fix location tz bug with datetime.timezone.utc

* update whatsnew

* issue in whatsnew

* fix whatsnew class typo
  • Loading branch information
wholmgren authored and cwhanse committed Mar 18, 2020
commit 1c12459fc6fe2664385314f8eb4b44a031c4db12
10 changes: 10 additions & 0 deletions 10 docs/sphinx/source/whatsnew/v0.7.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
v0.7.2 (Month day, year)
-------------------------

API Changes
~~~~~~~~~~~
* :py:class:`pvlib.forecast.ForecastModel` now requires ``start`` and ``end``
arguments to be tz-localized. (:issue:`877`, :pull:`879`)

Enhancements
~~~~~~~~~~~~
* TMY3 dataframe returned by :py:func:`~pvlib.iotools.read_tmy3` now contains
Expand All @@ -15,6 +20,8 @@ Bug fixes
a leap year (:pull:`866`)
* Implement NREL Developer Network API key for consistent success with API
calls in :py:mod:`pvlib.tests.iotools.test_psm3` (:pull:`873`)
* Fix issue with :py:class:`pvlib.location.Location` creation when
passing ``tz=datetime.timezone.utc`` (:pull:`879`)

Documentation
~~~~~~~~~~~~~
Expand All @@ -29,3 +36,6 @@ Contributors
* Mark Mikofski (:ghuser:`mikofski`)
* Cliff Hansen (:ghuser:`cwhanse`)
* Cameron T. Stark (:ghuser:`camerontstark`)
* Will Holmgren (:ghuser:`wholmgren`)
* Kevin Anderson (:ghuser:`kanderso-nrel`)
* Karthikeyan Singaravelan (:ghuser:`tirkarthi`)
51 changes: 34 additions & 17 deletions 51 pvlib/forecast.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,25 @@ def set_dataset(self):
self.ncss = NCSS(self.access_url)
self.query = self.ncss.query()

def set_query_time_range(self, start, end):
"""
Parameters
----------
start : datetime.datetime, pandas.Timestamp
Must be tz-localized.
end : datetime.datetime, pandas.Timestamp
Must be tz-localized.

Notes
-----
Assigns ``self.start``, ``self.end``. Modifies ``self.query``
"""
self.start = pd.Timestamp(start)
self.end = pd.Timestamp(end)
if self.start.tz is None or self.end.tz is None:
raise TypeError('start and end must be tz-localized')
self.query.time_range(self.start, self.end)

def set_query_latlon(self):
'''
Sets the NCSS query location latitude and longitude.
Expand All @@ -180,24 +199,24 @@ def set_query_latlon(self):
self.lbox = False
self.query.lonlat_point(self.longitude, self.latitude)

def set_location(self, time, latitude, longitude):
def set_location(self, tz, latitude, longitude):
'''
Sets the location for the query.

Parameters
----------
time: datetime or DatetimeIndex
Time range of the query.
'''
if isinstance(time, datetime.datetime):
tzinfo = time.tzinfo
else:
tzinfo = time.tz
tz: tzinfo
Timezone of the query
latitude: float
Latitude of the query
longitude: float
Longitude of the query

if tzinfo is None:
self.location = Location(latitude, longitude)
else:
self.location = Location(latitude, longitude, tz=tzinfo)
Notes
-----
Assigns ``self.location``.
'''
self.location = Location(latitude, longitude, tz=tz)

def get_data(self, latitude, longitude, start, end,
vert_level=None, query_variables=None,
Expand Down Expand Up @@ -243,14 +262,12 @@ def get_data(self, latitude, longitude, start, end,
else:
self.query_variables = query_variables

self.set_query_time_range(start, end)

self.latitude = latitude
self.longitude = longitude
self.set_query_latlon() # modifies self.query
self.set_location(start, latitude, longitude)

self.start = start
self.end = end
self.query.time_range(self.start, self.end)
self.set_location(self.start.tz, latitude, longitude)

if self.vert_level is not None:
self.query.vertical_level(self.vert_level)
Expand Down
3 changes: 3 additions & 0 deletions 3 pvlib/location.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ def __init__(self, latitude, longitude, tz='UTC', altitude=0,
if isinstance(tz, str):
self.tz = tz
self.pytz = pytz.timezone(tz)
elif isinstance(tz, datetime.timezone):
self.tz = 'UTC'
self.pytz = pytz.UTC
elif isinstance(tz, datetime.tzinfo):
self.tz = tz.zone
self.pytz = tz
Expand Down
15 changes: 9 additions & 6 deletions 15 pvlib/tests/test_forecast.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from datetime import datetime, timedelta
from pytz import timezone
from datetime import datetime, timedelta, timezone
import warnings

import pandas as pd
Expand Down Expand Up @@ -114,7 +113,7 @@ def test_vert_level():
@requires_siphon
def test_datetime():
amodel = NAM()
start = datetime.now()
start = datetime.now(tz=timezone.utc)
end = start + timedelta(days=1)
amodel.get_processed_data(_latitude, _longitude, start, end)

Expand All @@ -138,7 +137,6 @@ def test_full():
GFS(set_type='full')


@requires_siphon
def test_temp_convert():
amodel = GFS()
data = pd.DataFrame({'temp_air': [273.15]})
Expand All @@ -157,14 +155,19 @@ def test_temp_convert():
# variables=new_variables)


@requires_siphon
def test_set_location():
amodel = GFS()
latitude, longitude = 32.2, -110.9
time = datetime.now(timezone('UTC'))
time = 'UTC'
amodel.set_location(time, latitude, longitude)


def test_set_query_time_range_tzfail():
amodel = GFS()
with pytest.raises(TypeError):
amodel.set_query_time_range(datetime.now(), datetime.now())


def test_cloud_cover_to_transmittance_linear():
amodel = GFS()
assert_allclose(amodel.cloud_cover_to_transmittance_linear(0), 0.75)
Expand Down
1 change: 1 addition & 0 deletions 1 pvlib/tests/test_location.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def test_location_all():

@pytest.mark.parametrize('tz', [
pytz.timezone('US/Arizona'), 'America/Phoenix', -7, -7.0,
datetime.timezone.utc
])
def test_location_tz(tz):
Location(32.2, -111, tz)
Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.