{ "cells": [ { "cell_type": "markdown", "id": "9a51a013-8798-4327-bd2b-5aaf0427cda4", "metadata": {}, "source": [ "# Cloudy-skies: DISC\n", "\n", "The NSRDB [website](https://nsrdb.nrel.gov/data-sets/us-data) claims that the DISC model is used for cloudy-sky GHI decomposition:\n", "\n", "> PSM uses a two-step process where cloud properties are retrieved using the adapted PATMOS-X model, which are then used as inputs to REST2 for clear sky and FARMS for cloudy sky radiation calculations. REST2 calculates both DNI and GHI. FARMS calculates GHI, and the DISC model is then used to calculate DNI.\n", "\n", "Let's see if we can recreate it using pvlib." ] }, { "cell_type": "code", "execution_count": 1, "id": "50531b9f-821b-4f17-ae11-535b6241dee6", "metadata": {}, "outputs": [], "source": [ "import pvlib\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "id": "60c947c9-f9c2-4ccf-b5e7-c9c9f3359e05", "metadata": {}, "outputs": [], "source": [ "lat, lon = 40, -80\n", "\n", "df, meta = pvlib.iotools.get_psm3(lat, lon, 'DEMO_KEY', 'assessingsolar@gmail.com',\n", " names=2018, interval=5, map_variables=True, leap_day=True,\n", " attributes=['ghi', 'dni', 'dhi', 'clearsky_ghi', 'solar_zenith_angle', 'surface_pressure', 'air_temperature', 'cloud_type'])" ] }, { "cell_type": "markdown", "id": "ed44be75-90b0-4ff2-813c-ed7c1e800eb4", "metadata": {}, "source": [ "As I understand it, \"cloudy sky\" refers to anything that isn't perfectly clear. As such, any deviation between GHI and clear-sky GHI indicates cloudy skies in the PSM3 model:" ] }, { "cell_type": "code", "execution_count": 3, "id": "56510c66-9eb2-48a2-ac4c-f3eaccf92909", "metadata": {}, "outputs": [], "source": [ "is_clear = (df['ghi_clear'] - df['ghi']) < 0.01\n", "cloudy = df.loc[~is_clear, :]" ] }, { "cell_type": "markdown", "id": "97ae35ee-709f-428c-b536-2d4319344b1d", "metadata": {}, "source": [ "It turns out to be necessary to use a modified solar constant to match the PSM3 values. pvlib's DISC implementation hardcodes the solar constant at 1367.0, so here's a modified version that takes the solar constant as an optional parameter:" ] }, { "cell_type": "code", "execution_count": 4, "id": "ac6dec69-39b0-45e7-830a-24689b3e86fd", "metadata": {}, "outputs": [], "source": [ "from pvlib.irradiance import get_extra_radiation, clearness_index, _disc_kn\n", "from pvlib import atmosphere\n", "import numpy as np\n", "\n", "def my_disc(ghi, solar_zenith, datetime_or_doy, pressure=101325,\n", " min_cos_zenith=0.065, max_zenith=87, max_airmass=12, sc=1367.0):\n", "\n", " I0 = get_extra_radiation(datetime_or_doy, sc, 'spencer')\n", "\n", " kt = clearness_index(ghi, solar_zenith, I0, min_cos_zenith=min_cos_zenith,\n", " max_clearness_index=1)\n", "\n", " am = atmosphere.get_relative_airmass(solar_zenith, model='kasten1966')\n", " if pressure is not None:\n", " am = atmosphere.get_absolute_airmass(am, pressure)\n", "\n", " Kn, am = _disc_kn(kt, am, max_airmass=max_airmass)\n", " dni = Kn * I0\n", "\n", " bad_values = (solar_zenith > max_zenith) | (ghi < 0) | (dni < 0)\n", " dni = np.where(bad_values, 0, dni)\n", "\n", " output = {}\n", " output['dni'] = dni\n", " output['kt'] = kt\n", " output['airmass'] = am\n", "\n", " if isinstance(datetime_or_doy, pd.DatetimeIndex):\n", " output = pd.DataFrame(output, index=datetime_or_doy)\n", "\n", " return output\n" ] }, { "cell_type": "markdown", "id": "76f9d5e7-3e4b-4327-8cfc-fddf204687c2", "metadata": {}, "source": [ "Another difference is that PSM3 appears to have different validity checks, so we modify those as well:" ] }, { "cell_type": "code", "execution_count": 5, "id": "d7cc52da-88d8-419d-b705-b77f90111230", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'PSM3 Cloudy-Sky DNI')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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KSmIjY012D5o0CAcPnzY7Gvi4+OxaNGiyqieXQK1avhrfMwGS72W75ea8xhIERERuV+N6CP1559/orS0FMHBwQbbg4ODkZWVZfY18+bNQ15envSXnp5eGVU1S6tWYljHUIQFajF7cCv8GPuA2UBpUnRzhAVq2ZxHRERUSWpERkqkUCgMHguCYLJNpNFooNFo3F6nK8tjXLYvzkJORERUuWpERqp+/fpQqVQm2afs7GyTLBURERGRrWpEIOXr64suXbpg3759Btv37duHnj17eqhWREREVNXVmKa9mTNnYsyYMejatSt69OiBjRs34urVq3jhhRc8XTUiIiKqompMIPXkk0/ir7/+wuLFi3Ht2jVERUVh9+7diIhgnyIiIiJyTI2ZR8pZeXl5CAwMRHp6ulvmoSAiIiLXE+eBzM3NhU6nc/n+a0xGylk3btwAAISHh3u4JkRERGSvGzduuCWQYkbKRmVlZcjMzERAQIDFKRMcIUbKzHRVLl53z+B19wxed8/gdfcM4+suCAJu3LiB0NBQKJWuH2PHjJSNlEolGjdu7Lb916lTh//QPIDX3TN43T2D190zeN09Q37d3ZGJEtWI6Q+IiIiI3IGBFBEREZGDGEh5mEajwYIFCyplORq6i9fdM3jdPYPX3TN43T2jsq87O5sTEREROYgZKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIichADKSIiIiIHMZAiIiIicpCPK3dWXFyMrKws3L59Gw0aNEBQUJArd09ERETkVZzOSN28eRPvvfceoqOjodPp0LRpU7Rt2xYNGjRAREQEJkyYgGPHjrmirkREREReRSEIguDoi9esWYNly5ahadOmGDZsGO677z6EhYVBq9Xi+vXrOHv2LA4ePIhPP/0U3bt3x1tvvYUWLVq4sv6VpqysDJmZmQgICIBCofB0dYiIiMgGgiDgxo0bCA0NhVLp+h5NTgVSf//73/H666+jffv2VssVFhZi8+bN8PX1xfjx4x09nEf9/vvvCA8P93Q1iIiIyAHp6elo3Lixy/frVCDljeLj4/HKK69g+vTpWLt2LYDyaHTRokXYuHEjcnJy0K1bN7zzzjto166dzfvNy8tDYGAg0tPTUadOHTfVnoiIiFwpPz8f4eHhyM3NhU6nc/n+ne5svn//fkyZMgXJyckmAUZeXh569uyJDRs2oE+fPs4eqkLHjh3Dxo0b0aFDB4PtK1euxOrVq5GQkICWLVti6dKlGDhwIC5cuICAgACb9i0259WpU4eBFBERURXjrm45TjcWrl27FhMmTDAbXOh0OkycOBFr1qxx9jAVunnzJkaNGoVNmzahbt260nZBELB27VrMnz8fjz32GKKiovCvf/0Lt2/fxocffuj2ehEREVH15XQgderUKQwZMsTi84MGDUJKSoqzh6nQiy++iJiYGAwYMMBg++XLl5GVlYVBgwZJ2zQaDfr27YvDhw9b3J9er0d+fr7BHxEREZGc0017//vf/6BWqy0fwMcHf/zxh7OHsWrHjh04fvy42WkWsrKyAADBwcEG24ODg5GWlmZxn/Hx8Vi0aJFrK0pERETVitMZqbCwMJw5c8bi86dPn0ajRo2cPYxF6enpmD59OhITE+Hn52exnHHbqCAIVttL582bh7y8POkvPT3dZXV2l8TkNPRavh+JyZYDRCIiInIdpwOphx56CK+//joKCwtNnisoKMCCBQswdOhQZw9jUUpKCrKzs9GlSxf4+PjAx8cHSUlJWLduHXx8fKRMlJiZEmVnZ5tkqeQ0Go3UsbyqdDDfcOASMnILsOHAJU9XhYiIqEZwumnv1Vdfxc6dO9GyZUtMmTIFrVq1gkKhwPnz5/HOO++gtLQU8+fPd0Vdzerfv79JRuzZZ59F69atMXfuXDRr1gwhISHYt28fOnfuDAAoKipCUlISVqxY4bZ6ecKk6ObYcOASJkU393RViIiIagSnA6ng4GAcPnwYkyZNwrx58yBOS6VQKDB48GCsX7/eaubHWQEBAYiKijLY5u/vj3r16knbZ8yYgbi4OLRo0QItWrRAXFwcatWqhZEjR7qtXp4wunsERneP8HQ1iIiIagyXLFocERGB3bt3IycnBxcvXoQgCGjRooXBNASeNGfOHBQUFGDy5MnShJx79+61eQ4pIiIiInOq3czm7pKfnw+dToe8vLwq0V+KiIiI3H//drqz+ZEjR/D1118bbNu6dSsiIyPRsGFD/OMf/4Ber3f2MERERERex+lAauHChTh9+rT0+MyZM3j++ecxYMAAxMbG4ssvv0R8fLyzhyEiIiLyOk4HUidPnkT//v2lxzt27EC3bt2wadMmzJw5E+vWrcO///1vZw9DRERE5HWcDqRycnIMRuUlJSUZLBlz7733VonJLImIiIjs5XQgFRwcjMuXLwMon5/p+PHj6NGjh/T8jRs3rC4hQ0RERFRVOR1IDRkyBLGxsTh48CDmzZuHWrVq4f7775eeP336NJo35wSRREREVP04PY/U0qVL8dhjj6Fv376oXbs2/vWvf8HX11d6fvPmzRg0aJCzhyEiIiLyOi6bRyovLw+1a9eGSqUy2H79+nXUrl3bILiqijiPFBERUdXj7vu3S2Y2BwCdTmd2e1BQkKsOQURERORVnA6kHnvsMZvK7dy509lDEREREXkVpwMpS5koIiIiourO6UBqy5YtrqgHERERUZXj9PQHRERERDWVSzqbl5WVISEhATt37sSVK1egUCgQGRmJJ554AmPGjIFCoXDFYYiIiIi8itMZKUEQMGzYMIwfPx4ZGRlo37492rVrh7S0NIwbNw6PPvqoK+pJRERE5HWczkglJCTghx9+wHfffYd+/foZPLd//34MHz4cW7duxTPPPOPsoYiIiIi8itMZqe3bt+OVV14xCaIA4IEHHkBsbCw++OADZw9DRERE5HWcDqROnz6NIUOGWHz+wQcfxKlTp5w9DBEREZHXcTqQun79OoKDgy0+HxwcjJycHGcPQ0REROR1nA6kSktL4eNjuauVSqVCSUmJs4chIiIi8jpOdzYXBAHjxo2DRqMx+7xer3f2EEREREReyelAauzYsRWW4Yg9IiIiqo64RAwRERGRg7hEDBEREZGDGEgREREROYiBFBEREZGDGEgREREROYiBFBEREZGD3BJIHT9+HEVFRe7YNREREZHXcEsgde+99+LKlSvu2DURERGR13BLICUIgjt2S0RERORV2EeKiIiIyEEMpIiIiIgcxECKiIiIyEEMpMgpiclp6LV8PxKT0zxdFSIiokrHQIqcsuHAJWTkFmDDgUuergoREVGlYyBVTVVWpmhSdHOEBWoxKbq5W49DRETkjXzcsdMFCxagfv367tg12UieKRrdPcJtxxndPcKt+yciIvJmbslILViwAEFBQe7Y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9OnThejoaKv72LJli6DT6YQpU6YI48ePl7anp6cLGo1GiI2NFSIiIqzu49FHHxVGjx5t8fkjR44IAIS1a9eafV5cTHTBggVCx44dpe2lpaXCokWLhLCwMMHX11fo2LGj8PXXX0vPiwugyhcjFVeVv3z5ssE5hoeHC1qtVhg+fLiwatUqQafTCYIgCJcvXxYUCoVw7NgxgzqtW7dOaNKkiVBWVma2zjqdTkhISLB4zoIgCBEREcKaNWukx5s3bxbq1Kkj7N27V2jevLnwxhtvGJQ/c+aMoFAohIsXL5rdn/H1EZ0/f17w9fUV5s+fL23r27ev8Oyzzwr169cX3nnnHWn7mjVrDN5P8f0nIlPMSBHVQFqtVspAhISE4Ny5czh79myFr3v++efx0Ucf4fbt2wDKm3yGDBmC4OBgq687ceIEDh8+jL59+1os88EHH6B27dqYPHmy2ectNS3985//xJtvvolVq1bh9OnTGDx4MIYNG4Zff/21wvMRHTlyBM899xwmT56MkydPol+/fli6dKn0fNOmTTFgwABs2bLF4HVbtmyRmk7NCQkJwe7du02yQJasWrUKs2fPxp49ezBw4EA899xzJsfcvHkz7r//fjRv3tzm8wOA1q1b48EHH8TOnTsNttepUwevvPIKFi9ebNDcS0S2YSBFVMMcPXoUH374Ifr37w8AmDp1Ku699160b98eTZs2xVNPPYXNmzeb9KcBgE6dOqF58+b4z3/+A0EQkJCQgOeee87isRo3bgyNRoOuXbvixRdfxPjx4y2W/fXXX9GsWTOo1Wq7zmfVqlWYO3cunnrqKbRq1QorVqxAp06d7OrA/c9//hODBw9GbGwsWrZsiWnTpmHw4MEGZcaPH4/t27dL1+XUqVM4efIknn32WYv73bhxIw4fPox69erh3nvvxUsvvYQff/zRbNl58+Zh9erVOHDgALp37w4AePbZZ3HhwgUcPXoUAFBcXIzExESr19ya1q1b48qVKybbJ0+eDD8/P6xevdqh/RLVZAykiGqAr776CrVr14afnx969OiBPn364K233gJQ3p9p165duHjxIl599VXUrl0bs2bNwn333SdlnuTELElSUhJu3ryJhx56yOJxDx48iP/+97949913sXbtWmzfvt1iWUEQLGZ2LMnPz0dmZiZ69eplsL1Xr144f/68zfs5f/48evToYbDN+PHw4cPh4+ODTz/9FEB5Zqhfv35o2rQprl69itq1a0t/cXFxAIA+ffrgt99+w3fffYfHH38c586dw/33348lS5YY7PvNN9/Ee++9h0OHDqF9+/bS9kaNGiEmJgabN28GUP4+FhYW4u9//7vN5yZn6RprNBosXrwYb7zxBv7880+H9k1UUzGQIqoB+vXrh5MnT+LChQsoLCzEzp070bBhQ4MyzZs3x/jx4/F///d/OH78OFJTU/HRRx+Z7GvUqFFITk7GwoUL8cwzz8DHx8ficSMjI9G+fXtMmDABL730EhYuXGixbMuWLXHp0iWHOj0bBwfygEGpVErbRMbHkD9nia+vL8aMGYMtW7agqKgIH374oZQZCg0NxcmTJ6W/F154QXqdWq3G/fffj9jYWOzduxeLFy/GkiVLDDrz33///SgtLcW///1vk+OOHz8eO3bsQEFBAbZs2YInn3wStWrVqrC+5pw/fx6RkZFmnxs9ejSaNm1q0KRJRBVjIEVUA/j7++Oee+5BRESETU1nTZs2Ra1atcz2mQkKCsKwYcOQlJRkVxOTIAhmmwtFI0eOxM2bN7F+/Xqzz+fm5ppsq1OnDkJDQ3Ho0CGD7YcPH5amamjQoAEA4Nq1a9LzJ0+eNCjftm1bJCcnG2wzfgyUBzXffvst1q9fj+LiYjz22GMAAB8fH9xzzz3SX1BQkMXzbNu2LUpKSlBYWChtu++++/DNN98gLi4Ob7zxhkH5hx56CP7+/tiwYQO+/vprh5v15KMGzVEqlYiPj8eGDRvMNv8RkXmWf0oSUY2wcOFC3L59Gw899BAiIiKQm5uLdevWobi4GAMHDjT7moSEBKxfvx716tUz+/w777yDJk2aoHXr1gDK55VatWoVpk6darEe3bp1w5w5czBr1ixkZGTg0UcfRWhoKC5evIh3330XvXv3xvTp001e9/LLL2PBggVo3rw5OnXqhC1btuDkyZP44IMPAAD33HMPwsPDsXDhQixduhS//vor3nzzTYN9TJs2DT179sTKlSsxfPhw7N27F998843Jsdq0aYPu3btj7ty5eO6556DVai2eD1A+T9PTTz+Nrl27ol69ekhNTcUrr7yCfv36oU6dOgZle/Toga+//hpDhgyBj48PXnrpJQCASqXCuHHjMG/ePNxzzz0mTY7mlJSUICsrC2VlZfjrr79w4MABLF26FJ06dcLLL79s8XUxMTHo1q0b3nvvvQoHEBDRHR4cMUhElcDc9Ady+/fvFx5//HEhPDxc8PX1FYKDg4UhQ4YIBw8elMpUNPzdeLj8unXrhHbt2gm1atUS6tSpI3Tu3FlYv369UFpaWmF9P/roI6FPnz5CQECA4O/vL3To0EFYvHixTdMfqNVqk+kPBEEQDh06JLRv317w8/MT7r//fuHjjz82mf7g/fffFxo3bixotVrh4YcfNpj+QO79998XAAhHjx6t8Fzi4uKEHj16CEFBQYKfn5/QrFkzYdq0acKff/4plTGe/iApKUnw9/cX/vnPf0rbLl26JAAQVq5cWeExFyxYIAAQAAgqlUoICgoSevfuLaxZs0YoLCw0KNu3b19h+vTpBtsOHz4sAOD0B0Q2UgiCDZ0DiIgIALBs2TLs2LEDZ86cqbRj/vjjj4iOjsbvv//OTBGRl2HTHhGRDW7evInz58/jrbfeMhl15y56vR7p6el47bXXMGLECAZRRF6Inc2JiGwwZcoU9O7dG3379nW4w7e9tm/fjlatWiEvLw8rV66slGMSkX3YtEdERETkIGakiIiIiBzEQIqIiIjIQQykiIiIiBzEQIqIiIjIQQykiIiIiBzEQIqIiIjIQQykiIiIiBzEQIqIiIjIQf8POqUi+1DWJCMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "disc = my_disc(cloudy['ghi'], cloudy['solar_zenith'], cloudy.index, cloudy['pressure']*100, min_cos_zenith=0.0, max_zenith=88.765, max_airmass=10e10, sc=1361.2)\n", "fig, axes = plt.subplots(2, 1, sharex=True)\n", "\n", "axes[0].scatter(cloudy['dni'], disc['dni'], s=1)\n", "axes[0].set_ylabel('DISC DNI')\n", "axes[1].scatter(cloudy['dni'], cloudy['dni'] - disc['dni'], s=1)\n", "axes[1].axhline(0, c='k', ls='--')\n", "axes[1].set_ylabel('Difference (PSM3 $-$ DISC)')\n", "axes[1].set_xlabel('PSM3 Cloudy-Sky DNI')" ] }, { "cell_type": "markdown", "id": "7b33f990-af8d-4386-acd5-cf26b165d255", "metadata": {}, "source": [ "This is pretty close, but obviously not perfect. What's the difference?" ] }, { "cell_type": "code", "execution_count": 6, "id": "5aece958-21a9-40fe-94a7-8f1adbdc859b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Last updated: 2022-09-22 19:42:51\n", "\n", "numpy : 1.22.3\n", "pvlib : 0.9.3\n", "pandas : 1.5.0\n", "matplotlib: 3.5.2\n", "\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark --iversions -u -d -t" ] }, { "cell_type": "code", "execution_count": null, "id": "2104961b-ff35-43b3-bf0b-dfdf7c932c55", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 5 }