From c4bf3e848eb351b8fd18b0f2d5f24b48103950de Mon Sep 17 00:00:00 2001 From: Omesh37 Date: Thu, 2 Jul 2026 19:36:52 +0530 Subject: [PATCH 1/2] shading: use morphology.footprint_rectangle((1, 3)) for 1x3 structuring element --- pvanalytics/features/shading.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pvanalytics/features/shading.py b/pvanalytics/features/shading.py index 08ea73ed..cd595a3e 100644 --- a/pvanalytics/features/shading.py +++ b/pvanalytics/features/shading.py @@ -365,7 +365,7 @@ def fixed(ghi, daytime, clearsky, interval=None, min_gradient=2): threshold = gradient > min_gradient # binary image of wire candidates # From here we CAN use skimage because we are working with binary images. - three_minute_mask = morphology.rectangle(1, 3) + three_minute_mask = morphology.footprint_rectangle((1, 3)) wires = morphology.remove_small_objects( morphology.binary_closing(threshold, three_minute_mask), min_size=200, From a9ff3518cb729d8bde7d92c68b93264095ea15c8 Mon Sep 17 00:00:00 2001 From: Omesh37 Date: Sat, 4 Jul 2026 13:53:00 +0530 Subject: [PATCH 2/2] Fix read-only array error in _prepare_images by copying to_numpy() output --- pvanalytics/features/shading.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pvanalytics/features/shading.py b/pvanalytics/features/shading.py index cd595a3e..d76977ea 100644 --- a/pvanalytics/features/shading.py +++ b/pvanalytics/features/shading.py @@ -113,7 +113,7 @@ def _prepare_images(ghi, clearsky, daytime, interval): ghi_image = pd.DataFrame(cloudless_image).interpolate( axis=0, limit_direction='both' - ).to_numpy() + ).to_numpy().copy() # set night to nan ghi_image[~_to_image(daytime.to_numpy(), image_width)] = np.nan return (