{"action":"created","comment":{"url":"https://api.github.com/repos/pvlib/pvlib-python/pulls/comments/210321094","pull_request_review_id":146510749,"id":210321094,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDMyMTA5NA==","diff_hunk":"@@ -169,6 +170,11 @@ def aoi_projection(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth):\n         Solar zenith angle.\n     solar_azimuth : numeric\n         Solar azimuth angle.\n+    projection_minimum : None or numeric, default None\n+        Minimum allowable value for the projection for the solar angle\n+        into the plane of the array. For example, 0 is equivalent to a\n+        90 degree limit, 0.01745 is equivalent to a 89 degree limit.\n+        `None` applies no limit.\n ","path":"pvlib/irradiance.py","position":null,"original_position":19,"commit_id":"c8530a2bb6ba9d6c79e042aa437d35562abb354a","original_commit_id":"9a74404808d122b4c55b9292a2cf6a24eeb17039","user":{"login":"wholmgren","id":4383303,"node_id":"MDQ6VXNlcjQzODMzMDM=","avatar_url":"https://avatars0.githubusercontent.com/u/4383303?v=4","gravatar_id":"","url":"https://api.github.com/users/wholmgren","html_url":"https://github.com/wholmgren","followers_url":"https://api.github.com/users/wholmgren/followers","following_url":"https://api.github.com/users/wholmgren/following{/other_user}","gists_url":"https://api.github.com/users/wholmgren/gists{/gist_id}","starred_url":"https://api.github.com/users/wholmgren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wholmgren/subscriptions","organizations_url":"https://api.github.com/users/wholmgren/orgs","repos_url":"https://api.github.com/users/wholmgren/repos","events_url":"https://api.github.com/users/wholmgren/events{/privacy}","received_events_url":"https://api.github.com/users/wholmgren/received_events","type":"User","site_admin":false},"body":"I will remove the ``projection_minimum`` kwargs and put the limits in the diffuse models where necessary. We can address the function name in a separate issue.","created_at":"2018-08-15T16:08:20Z","updated_at":"2018-08-15T16:08:20Z","html_url":"https://github.com/pvlib/pvlib-python/pull/535#discussion_r210321094","pull_request_url":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/pvlib/pvlib-python/pulls/comments/210321094"},"html":{"href":"https://github.com/pvlib/pvlib-python/pull/535#discussion_r210321094"},"pull_request":{"href":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535"}},"in_reply_to_id":210080840},"pull_request":{"url":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535","id":208350603,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MzUwNjAz","html_url":"https://github.com/pvlib/pvlib-python/pull/535","diff_url":"https://github.com/pvlib/pvlib-python/pull/535.diff","patch_url":"https://github.com/pvlib/pvlib-python/pull/535.patch","issue_url":"https://api.github.com/repos/pvlib/pvlib-python/issues/535","number":535,"state":"open","locked":false,"title":"limit cos(aoi) in diffuse sky functions","user":{"login":"wholmgren","id":4383303,"node_id":"MDQ6VXNlcjQzODMzMDM=","avatar_url":"https://avatars0.githubusercontent.com/u/4383303?v=4","gravatar_id":"","url":"https://api.github.com/users/wholmgren","html_url":"https://github.com/wholmgren","followers_url":"https://api.github.com/users/wholmgren/followers","following_url":"https://api.github.com/users/wholmgren/following{/other_user}","gists_url":"https://api.github.com/users/wholmgren/gists{/gist_id}","starred_url":"https://api.github.com/users/wholmgren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wholmgren/subscriptions","organizations_url":"https://api.github.com/users/wholmgren/orgs","repos_url":"https://api.github.com/users/wholmgren/repos","events_url":"https://api.github.com/users/wholmgren/events{/privacy}","received_events_url":"https://api.github.com/users/wholmgren/received_events","type":"User","site_admin":false},"body":"Fixes two issues related to projection of the solar angle:\r\n\r\n1. Dividing by near-0 cos(solar_zenith) when the sun is very close to the horizon.\r\n2. non-0 contributions of the beam irradiance to the ``reindl``, ``haydavies``, and ``klucher`` functions.\r\n\r\nImplementation is up for debate. Seemed easier to make a pull request with a concrete proposal.\r\n\r\nI considered calculating the ``cos_solar_zenith`` as:\r\n\r\n```python\r\ncos_solar_zenith = aoi_projection(0, 0, solar_zenith, 0, projection_minimum=0.01745)\r\n```\r\n\r\nbut I am worried this could lead to issues with small floating point arithmetic (worse, they could be platform and python/numpy version dependent).\r\n\r\n - [x] Closes #432, Closes #526\r\n - [x] I am familiar with the [contributing guidelines](http://pvlib-python.readthedocs.io/en/latest/contributing.html).\r\n - [ ] Fully tested. Added and/or modified tests to ensure correct behavior for all reasonable inputs. Tests (usually) must pass on the TravisCI and Appveyor testing services.\r\n - [x] Updates entries to `docs/sphinx/source/api.rst` for API changes.\r\n - [ ] Adds description and name entries in the appropriate `docs/sphinx/source/whatsnew` file for all changes.\r\n - [ ] Code quality and style is sufficient. Passes ``git diff upstream/master -u -- \"*.py\" | flake8 --diff``\r\n - [ ] New code is fully documented. Includes sphinx/numpydoc compliant docstrings and comments in the code where necessary.\r\n - [ ] Pull request is nearly complete and ready for detailed review.\r\n\r\nother:\r\n- [ ] Add test values for solar zenith between 89 and 90 deg.\r\n","created_at":"2018-08-14T17:09:23Z","updated_at":"2018-08-15T16:08:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"82e377d2045d62ed3dd45c328e11962ff9181fb3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":186023279,"node_id":"MDU6TGFiZWwxODYwMjMyNzk=","url":"https://api.github.com/repos/pvlib/pvlib-python/labels/api","name":"api","color":"fef2c0","default":false},{"id":177800477,"node_id":"MDU6TGFiZWwxNzc4MDA0Nzc=","url":"https://api.github.com/repos/pvlib/pvlib-python/labels/bug","name":"bug","color":"fc2929","default":true}],"milestone":{"url":"https://api.github.com/repos/pvlib/pvlib-python/milestones/19","html_url":"https://github.com/pvlib/pvlib-python/milestone/19","labels_url":"https://api.github.com/repos/pvlib/pvlib-python/milestones/19/labels","id":2686675,"node_id":"MDk6TWlsZXN0b25lMjY4NjY3NQ==","number":19,"title":"0.6.0","description":"","creator":{"login":"wholmgren","id":4383303,"node_id":"MDQ6VXNlcjQzODMzMDM=","avatar_url":"https://avatars0.githubusercontent.com/u/4383303?v=4","gravatar_id":"","url":"https://api.github.com/users/wholmgren","html_url":"https://github.com/wholmgren","followers_url":"https://api.github.com/users/wholmgren/followers","following_url":"https://api.github.com/users/wholmgren/following{/other_user}","gists_url":"https://api.github.com/users/wholmgren/gists{/gist_id}","starred_url":"https://api.github.com/users/wholmgren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wholmgren/subscriptions","organizations_url":"https://api.github.com/users/wholmgren/orgs","repos_url":"https://api.github.com/users/wholmgren/repos","events_url":"https://api.github.com/users/wholmgren/events{/privacy}","received_events_url":"https://api.github.com/users/wholmgren/received_events","type":"User","site_admin":false},"open_issues":21,"closed_issues":49,"state":"open","created_at":"2017-08-07T21:16:02Z","updated_at":"2018-08-14T23:46:09Z","due_on":"2018-06-10T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535/commits","review_comments_url":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535/comments","review_comment_url":"https://api.github.com/repos/pvlib/pvlib-python/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pvlib/pvlib-python/issues/535/comments","statuses_url":"https://api.github.com/repos/pvlib/pvlib-python/statuses/c8530a2bb6ba9d6c79e042aa437d35562abb354a","head":{"label":"wholmgren:aoidiff","ref":"aoidiff","sha":"c8530a2bb6ba9d6c79e042aa437d35562abb354a","user":{"login":"wholmgren","id":4383303,"node_id":"MDQ6VXNlcjQzODMzMDM=","avatar_url":"https://avatars0.githubusercontent.com/u/4383303?v=4","gravatar_id":"","url":"https://api.github.com/users/wholmgren","html_url":"https://github.com/wholmgren","followers_url":"https://api.github.com/users/wholmgren/followers","following_url":"https://api.github.com/users/wholmgren/following{/other_user}","gists_url":"https://api.github.com/users/wholmgren/gists{/gist_id}","starred_url":"https://api.github.com/users/wholmgren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wholmgren/subscriptions","organizations_url":"https://api.github.com/users/wholmgren/orgs","repos_url":"https://api.github.com/users/wholmgren/repos","events_url":"https://api.github.com/users/wholmgren/events{/privacy}","received_events_url":"https://api.github.com/users/wholmgren/received_events","type":"User","site_admin":false},"repo":{"id":30896535,"node_id":"MDEwOlJlcG9zaXRvcnkzMDg5NjUzNQ==","name":"pvlib-python","full_name":"wholmgren/pvlib-python","owner":{"login":"wholmgren","id":4383303,"node_id":"MDQ6VXNlcjQzODMzMDM=","avatar_url":"https://avatars0.githubusercontent.com/u/4383303?v=4","gravatar_id":"","url":"https://api.github.com/users/wholmgren","html_url":"https://github.com/wholmgren","followers_url":"https://api.github.com/users/wholmgren/followers","following_url":"https://api.github.com/users/wholmgren/following{/other_user}","gists_url":"https://api.github.com/users/wholmgren/gists{/gist_id}","starred_url":"https://api.github.com/users/wholmgren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wholmgren/subscriptions","organizations_url":"https://api.github.com/users/wholmgren/orgs","repos_url":"https://api.github.com/users/wholmgren/repos","events_url":"https://api.github.com/users/wholmgren/events{/privacy}","received_events_url":"https://api.github.com/users/wholmgren/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wholmgren/pvlib-python","description":"see https://github.com/pvlib/pvlib-python","fork":true,"url":"https://api.github.com/repos/wholmgren/pvlib-python","forks_url":"https://api.github.com/repos/wholmgren/pvlib-python/forks","keys_url":"https://api.github.com/repos/wholmgren/pvlib-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wholmgren/pvlib-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wholmgren/pvlib-python/teams","hooks_url":"https://api.github.com/repos/wholmgren/pvlib-python/hooks","issue_events_url":"https://api.github.com/repos/wholmgren/pvlib-python/issues/events{/number}","events_url":"https://api.github.com/repos/wholmgren/pvlib-python/events","assignees_url":"https://api.github.com/repos/wholmgren/pvlib-python/assignees{/user}","branches_url":"https://api.github.com/repos/wholmgren/pvlib-python/branches{/branch}","tags_url":"https://api.github.com/repos/wholmgren/pvlib-python/tags","blobs_url":"https://api.github.com/repos/wholmgren/pvlib-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wholmgren/pvlib-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wholmgren/pvlib-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/wholmgren/pvlib-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wholmgren/pvlib-python/statuses/{sha}","languages_url":"https://api.github.com/repos/wholmgren/pvlib-python/languages","stargazers_url":"https://api.github.com/repos/wholmgren/pvlib-python/stargazers","contributors_url":"https://api.github.com/repos/wholmgren/pvlib-python/contributors","subscribers_url":"https://api.github.com/repos/wholmgren/pvlib-python/subscribers","subscription_url":"https://api.github.com/repos/wholmgren/pvlib-python/subscription","commits_url":"https://api.github.com/repos/wholmgren/pvlib-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/wholmgren/pvlib-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/wholmgren/pvlib-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/wholmgren/pvlib-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/wholmgren/pvlib-python/contents/{+path}","compare_url":"https://api.github.com/repos/wholmgren/pvlib-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wholmgren/pvlib-python/merges","archive_url":"https://api.github.com/repos/wholmgren/pvlib-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wholmgren/pvlib-python/downloads","issues_url":"https://api.github.com/repos/wholmgren/pvlib-python/issues{/number}","pulls_url":"https://api.github.com/repos/wholmgren/pvlib-python/pulls{/number}","milestones_url":"https://api.github.com/repos/wholmgren/pvlib-python/milestones{/number}","notifications_url":"https://api.github.com/repos/wholmgren/pvlib-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wholmgren/pvlib-python/labels{/name}","releases_url":"https://api.github.com/repos/wholmgren/pvlib-python/releases{/id}","deployments_url":"https://api.github.com/repos/wholmgren/pvlib-python/deployments","created_at":"2015-02-17T00:55:18Z","updated_at":"2018-08-01T02:43:10Z","pushed_at":"2018-08-15T03:45:05Z","git_url":"git://github.com/wholmgren/pvlib-python.git","ssh_url":"git@github.com:wholmgren/pvlib-python.git","clone_url":"https://github.com/wholmgren/pvlib-python.git","svn_url":"https://github.com/wholmgren/pvlib-python","homepage":"","size":97449,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"pvlib:master","ref":"master","sha":"10339eef40b62775cc4d3037a118cf25a940fd52","user":{"login":"pvlib","id":11037261,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMDM3MjYx","avatar_url":"https://avatars3.githubusercontent.com/u/11037261?v=4","gravatar_id":"","url":"https://api.github.com/users/pvlib","html_url":"https://github.com/pvlib","followers_url":"https://api.github.com/users/pvlib/followers","following_url":"https://api.github.com/users/pvlib/following{/other_user}","gists_url":"https://api.github.com/users/pvlib/gists{/gist_id}","starred_url":"https://api.github.com/users/pvlib/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pvlib/subscriptions","organizations_url":"https://api.github.com/users/pvlib/orgs","repos_url":"https://api.github.com/users/pvlib/repos","events_url":"https://api.github.com/users/pvlib/events{/privacy}","received_events_url":"https://api.github.com/users/pvlib/received_events","type":"Organization","site_admin":false},"repo":{"id":30895522,"node_id":"MDEwOlJlcG9zaXRvcnkzMDg5NTUyMg==","name":"pvlib-python","full_name":"pvlib/pvlib-python","owner":{"login":"pvlib","id":11037261,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMDM3MjYx","avatar_url":"https://avatars3.githubusercontent.com/u/11037261?v=4","gravatar_id":"","url":"https://api.github.com/users/pvlib","html_url":"https://github.com/pvlib","followers_url":"https://api.github.com/users/pvlib/followers","following_url":"https://api.github.com/users/pvlib/following{/other_user}","gists_url":"https://api.github.com/users/pvlib/gists{/gist_id}","starred_url":"https://api.github.com/users/pvlib/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pvlib/subscriptions","organizations_url":"https://api.github.com/users/pvlib/orgs","repos_url":"https://api.github.com/users/pvlib/repos","events_url":"https://api.github.com/users/pvlib/events{/privacy}","received_events_url":"https://api.github.com/users/pvlib/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pvlib/pvlib-python","description":"A set of documented functions for simulating the performance of photovoltaic energy systems.","fork":false,"url":"https://api.github.com/repos/pvlib/pvlib-python","forks_url":"https://api.github.com/repos/pvlib/pvlib-python/forks","keys_url":"https://api.github.com/repos/pvlib/pvlib-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pvlib/pvlib-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pvlib/pvlib-python/teams","hooks_url":"https://api.github.com/repos/pvlib/pvlib-python/hooks","issue_events_url":"https://api.github.com/repos/pvlib/pvlib-python/issues/events{/number}","events_url":"https://api.github.com/repos/pvlib/pvlib-python/events","assignees_url":"https://api.github.com/repos/pvlib/pvlib-python/assignees{/user}","branches_url":"https://api.github.com/repos/pvlib/pvlib-python/branches{/branch}","tags_url":"https://api.github.com/repos/pvlib/pvlib-python/tags","blobs_url":"https://api.github.com/repos/pvlib/pvlib-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pvlib/pvlib-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pvlib/pvlib-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/pvlib/pvlib-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pvlib/pvlib-python/statuses/{sha}","languages_url":"https://api.github.com/repos/pvlib/pvlib-python/languages","stargazers_url":"https://api.github.com/repos/pvlib/pvlib-python/stargazers","contributors_url":"https://api.github.com/repos/pvlib/pvlib-python/contributors","subscribers_url":"https://api.github.com/repos/pvlib/pvlib-python/subscribers","subscription_url":"https://api.github.com/repos/pvlib/pvlib-python/subscription","commits_url":"https://api.github.com/repos/pvlib/pvlib-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/pvlib/pvlib-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/pvlib/pvlib-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/pvlib/pvlib-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/pvlib/pvlib-python/contents/{+path}","compare_url":"https://api.github.com/repos/pvlib/pvlib-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pvlib/pvlib-python/merges","archive_url":"https://api.github.com/repos/pvlib/pvlib-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pvlib/pvlib-python/downloads","issues_url":"https://api.github.com/repos/pvlib/pvlib-python/issues{/number}","pulls_url":"https://api.github.com/repos/pvlib/pvlib-python/pulls{/number}","milestones_url":"https://api.github.com/repos/pvlib/pvlib-python/milestones{/number}","notifications_url":"https://api.github.com/repos/pvlib/pvlib-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pvlib/pvlib-python/labels{/name}","releases_url":"https://api.github.com/repos/pvlib/pvlib-python/releases{/id}","deployments_url":"https://api.github.com/repos/pvlib/pvlib-python/deployments","created_at":"2015-02-17T00:21:33Z","updated_at":"2018-08-14T23:56:09Z","pushed_at":"2018-08-15T03:45:08Z","git_url":"git://github.com/pvlib/pvlib-python.git","ssh_url":"git@github.com:pvlib/pvlib-python.git","clone_url":"https://github.com/pvlib/pvlib-python.git","svn_url":"https://github.com/pvlib/pvlib-python","homepage":"http://pvlib-python.readthedocs.io/en/latest/","size":86815,"stargazers_count":167,"watchers_count":167,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":203,"mirror_url":null,"archived":false,"open_issues_count":80,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":203,"open_issues":80,"watchers":167,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535"},"html":{"href":"https://github.com/pvlib/pvlib-python/pull/535"},"issue":{"href":"https://api.github.com/repos/pvlib/pvlib-python/issues/535"},"comments":{"href":"https://api.github.com/repos/pvlib/pvlib-python/issues/535/comments"},"review_comments":{"href":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535/comments"},"review_comment":{"href":"https://api.github.com/repos/pvlib/pvlib-python/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pvlib/pvlib-python/pulls/535/commits"},"statuses":{"href":"https://api.github.com/repos/pvlib/pvlib-python/statuses/c8530a2bb6ba9d6c79e042aa437d35562abb354a"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"wholmgren"}}