.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "generated/gallery/irradiance-quality/daily-insolation-limits-irradiance.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_generated_gallery_irradiance-quality_daily-insolation-limits-irradiance.py: Clearsky Limits for Daily Insolation ==================================== Checking the clearsky limits for daily insolation data. .. GENERATED FROM PYTHON SOURCE LINES 9-18 Identifying and filtering out invalid irradiance data is a useful way to reduce noise during analysis. In this example, we use :py:func:`pvanalytics.quality.irradiance.daily_insolation_limits` to determine when the daily insolation lies between a minimum and a maximum value. Irradiance measurements and clear-sky irradiance on each day are integrated with the trapezoid rule to calculate daily insolation. For this example we will use data from the RMIS weather system located on the NREL campus in Colorado, USA. .. GENERATED FROM PYTHON SOURCE LINES 18-26 .. code-block:: default import pvanalytics from pvanalytics.quality.irradiance import daily_insolation_limits import pvlib import matplotlib.pyplot as plt import pandas as pd import pathlib .. GENERATED FROM PYTHON SOURCE LINES 27-30 First, read in data from the RMIS NREL system. This data set contains 5-minute right-aligned data. It includes POA, GHI, DNI, DHI, and GNI measurements. .. GENERATED FROM PYTHON SOURCE LINES 30-37 .. code-block:: default pvanalytics_dir = pathlib.Path(pvanalytics.__file__).parent rmis_file = pvanalytics_dir / 'data' / 'irradiance_RMIS_NREL.csv' data = pd.read_csv(rmis_file, index_col=0, parse_dates=True) # Make the datetime index tz-aware. data.index = data.index.tz_localize("Etc/GMT+7") .. GENERATED FROM PYTHON SOURCE LINES 38-40 Now model clear-sky irradiance for the location and times of the measured data: .. GENERATED FROM PYTHON SOURCE LINES 40-43 .. code-block:: default location = pvlib.location.Location(39.7407, -105.1686) clearsky = location.get_clearsky(data.index) .. GENERATED FROM PYTHON SOURCE LINES 44-53 Use :py:func:`pvanalytics.quality.irradiance.daily_insolation_limits` to identify if the daily insolation lies between a minimum and a maximum value. Here, we check GHI irradiance field 'irradiance_ghi__7981'. :py:func:`pvanalytics.quality.irradiance.daily_insolation_limits` returns a mask that identifies data that falls between lower and upper limits. The defaults (used here) are upper bound of 125% of clear-sky daily insolation, and lower bound of 40% of clear-sky daily insolation. .. GENERATED FROM PYTHON SOURCE LINES 53-57 .. code-block:: default daily_insolation_mask = daily_insolation_limits(data['irradiance_ghi__7981'], clearsky['ghi']) .. GENERATED FROM PYTHON SOURCE LINES 58-60 Plot the 'irradiance_ghi__7981' data stream and its associated clearsky GHI data stream. Mask the GHI time series by its daily_insolation_mask. .. GENERATED FROM PYTHON SOURCE LINES 60-70 .. code-block:: default data['irradiance_ghi__7981'].plot() clearsky['ghi'].plot() data.loc[daily_insolation_mask, 'irradiance_ghi__7981'].plot(ls='', marker='.') plt.legend(labels=["RMIS GHI", "Clearsky GHI", "Within Daily Insolation Limit"], loc="upper left") plt.xlabel("Date") plt.ylabel("GHI (W/m^2)") plt.tight_layout() plt.show() .. image-sg:: /generated/gallery/irradiance-quality/images/sphx_glr_daily-insolation-limits-irradiance_001.png :alt: daily insolation limits irradiance :srcset: /generated/gallery/irradiance-quality/images/sphx_glr_daily-insolation-limits-irradiance_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.385 seconds) .. _sphx_glr_download_generated_gallery_irradiance-quality_daily-insolation-limits-irradiance.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: daily-insolation-limits-irradiance.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: daily-insolation-limits-irradiance.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_