Skip to content

Instantly share code, notes, and snippets.

@ethanabrooks
Created June 21, 2024 14:05
Show Gist options
  • Save ethanabrooks/a7d9a07466353fb7e74cd11d1f77659c to your computer and use it in GitHub Desktop.
Save ethanabrooks/a7d9a07466353fb7e74cd11d1f77659c to your computer and use it in GitHub Desktop.

1

First, let's list the files in the current directory to understand the structure of the repository and locate potential files related to the reindl function in the pvlib.irradiance module.

ls -F

2

The pvlib directory likely contains the module where the reindl function is implemented. Let's navigate into the pvlib directory and list the files there to find the relevant script.

ls -F pvlib/

3

The file irradiance.py in the pvlib directory is likely where the reindl function is implemented, given the issue description. Let's open this file to inspect the implementation of the reindl function and identify the problematic code.

open pvlib/irradiance.py

4

Now that we have the irradiance.py file open, we need to locate the reindl function within this file. Since the file is quite large, we can use the search functionality to find the function directly.

Let's search for the term "reindl" in the currently open file.

search_file "reindl"

5

The definition of the reindl function starts at line 793 in the irradiance.py file. Let's navigate to that line to inspect the implementation and identify the problematic code related to the division by GHI.

goto 793

6

We have located the reindl function in the irradiance.py file. The issue description mentions that NaN or Inf values are generated due to a division by GHI in "term3". Let's inspect the code further to identify where "term3" is calculated and how it handles the case when GHI is zero.

We need to scroll down to see more of the function's implementation to find the problematic division.

scroll_down

7

We've identified the problematic code in the reindl function. The issue arises in term3 where the division by ghi occurs. This can lead to NaN or Inf values when ghi is zero.

To address this issue, we should add a condition to handle the case when ghi is zero. Specifically, we can modify term3 to return zero when ghi is zero, preventing division by zero.

Let's edit the code to include this condition.

edit 889:889
    term3 = 1 + np.sqrt(HB / ghi) * (tools.sind(0.5 * surface_tilt) ** 3) if ghi != 0 else 0
end_of_edit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment