diff --git a/Tutorial 1 - TMY Weather Data.ipynb b/Tutorial 1 - TMY Weather Data.ipynb index 5386bda..0c0c18b 100644 --- a/Tutorial 1 - TMY Weather Data.ipynb +++ b/Tutorial 1 - TMY Weather Data.ipynb @@ -75,7 +75,7 @@ "\n", "These data are directly measured, derived from measured data, or simulated using a stochastic model.\n", "\n", - "If you want to learn more about irradiance data, you can visit the [Solar RAdiometry webpage](https://www.pmodwrc.ch/en/world-radiation-center-2/srs/) \n", + "If you want to learn more about irradiance data, you can visit the [Solar Radiometry webpage](https://www.pmodwrc.ch/en/world-radiation-center-2/srs/) \n", "\n", "\n" ] @@ -120,7 +120,7 @@ "outputs": [], "source": [ "# if running on google colab, uncomment the next line and execute this cell to install the dependencies and prevent \"ModuleNotFoundError\" in later cells:\n", - "# !pip install -r https://raw.githubusercontent.com/PVSC-Python-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" + "# !pip install -r https://raw.githubusercontent.com/PV-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" ] }, { @@ -758,7 +758,7 @@ "\n", "Wind speed is measured with an anemometer. The most common type is a the cup-type anemometer, shown on the right side of the picture below. The number of rotations per time interval is used to calculate the wind speed. The vane on the left is used to measure the direction of the wind. Wind direction is reported as the direction from which the wind is blowing.\n", "\n", - "" + "" ] }, { @@ -777,7 +777,7 @@ "\n", "Air temperature plays a large role in PV system performance as PV modules and inverters are cooled convectively by the surrounding air.\n", "\n", - " " + " " ] }, { @@ -1551,7 +1551,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1565,7 +1565,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/Tutorial 2 - POA Irradiance.ipynb b/Tutorial 2 - POA Irradiance.ipynb index ac6899a..9923845 100644 --- a/Tutorial 2 - POA Irradiance.ipynb +++ b/Tutorial 2 - POA Irradiance.ipynb @@ -82,7 +82,7 @@ "outputs": [], "source": [ "# if running on google colab, uncomment the next line and execute this cell to install the dependencies and prevent \"ModuleNotFoundError\" in later cells:\n", - "# !pip install -r https://raw.githubusercontent.com/PVSC-Python-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" + "# !pip install -r https://raw.githubusercontent.com/PV-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" ] }, { @@ -550,7 +550,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -564,7 +564,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/Tutorial 3 - Array Power.ipynb b/Tutorial 3 - Array Power.ipynb index a05de9c..256074f 100644 --- a/Tutorial 3 - Array Power.ipynb +++ b/Tutorial 3 - Array Power.ipynb @@ -35,7 +35,7 @@ "outputs": [], "source": [ "# if running on google colab, uncomment the next line and execute this cell to install the dependencies and prevent \"ModuleNotFoundError\" in later cells:\n", - "# !pip install -r https://raw.githubusercontent.com/PVSC-Python-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" + "# !pip install -r https://raw.githubusercontent.com/PV-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" ] }, { @@ -453,7 +453,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -467,7 +467,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/Tutorial A - Single Diode Model.ipynb b/Tutorial A - Single Diode Model.ipynb index fe480f4..e5f890b 100644 --- a/Tutorial A - Single Diode Model.ipynb +++ b/Tutorial A - Single Diode Model.ipynb @@ -20,7 +20,7 @@ "outputs": [], "source": [ "# if running on google colab, uncomment the next line and execute this cell to install the dependencies and prevent \"ModuleNotFoundError\" in later cells:\n", - "# !pip install -r https://raw.githubusercontent.com/PVSC-Python-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" + "# !pip install -r https://raw.githubusercontent.com/PV-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" ] }, { @@ -363,7 +363,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -377,7 +377,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/Tutorial B - pvfree.ipynb b/Tutorial B - pvfree.ipynb index 2773ccf..340006b 100644 --- a/Tutorial B - pvfree.ipynb +++ b/Tutorial B - pvfree.ipynb @@ -26,7 +26,7 @@ "outputs": [], "source": [ "# if running on google colab, uncomment the next line and execute this cell to install the dependencies and prevent \"ModuleNotFoundError\" in later cells:\n", - "# !pip install -r https://raw.githubusercontent.com/PVSC-Python-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" + "# !pip install -r https://raw.githubusercontent.com/PV-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" ] }, { @@ -135,7 +135,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -149,7 +149,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/Tutorial C - Modeling Module's Performance Advanced.ipynb b/Tutorial C - Modeling Module's Performance Advanced.ipynb index b68fe68..e23de6a 100644 --- a/Tutorial C - Modeling Module's Performance Advanced.ipynb +++ b/Tutorial C - Modeling Module's Performance Advanced.ipynb @@ -98,7 +98,7 @@ "outputs": [], "source": [ "# if running on google colab, uncomment the next line and execute this cell to install the dependencies and prevent \"ModuleNotFoundError\" in later cells:\n", - "# !pip install -r https://raw.githubusercontent.com/PVSC-Python-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" + "# !pip install -r https://raw.githubusercontent.com/PV-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" ] }, { @@ -903,7 +903,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -917,7 +917,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/Tutorial D - pySAM Modeling the Bifacial Tracker Field at NREL.ipynb b/Tutorial D - pySAM Modeling the Bifacial Tracker Field at NREL.ipynb index 4dbb85a..d17657c 100644 --- a/Tutorial D - pySAM Modeling the Bifacial Tracker Field at NREL.ipynb +++ b/Tutorial D - pySAM Modeling the Bifacial Tracker Field at NREL.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "742de2e1", "metadata": {}, "source": [ "# 6 - pySAM Simulation\n", @@ -26,12 +27,13 @@ "outputs": [], "source": [ "# if running on google colab, uncomment the next line and execute this cell to install the dependencies and prevent \"ModuleNotFoundError\" in later cells:\n", - "# !pip install -r https://raw.githubusercontent.com/PVSC-Python-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" + "# !pip install -r https://raw.githubusercontent.com/PV-Tutorials/pyData-2021-Solar-PV-Modeling/main/requirements.txt" ] }, { "cell_type": "code", "execution_count": 1, + "id": "919d0416", "metadata": {}, "outputs": [], "source": [ @@ -43,6 +45,7 @@ { "cell_type": "code", "execution_count": null, + "id": "090efe7f", "metadata": {}, "outputs": [], "source": [ @@ -58,6 +61,7 @@ { "cell_type": "code", "execution_count": 3, + "id": "64ea6839", "metadata": {}, "outputs": [ { @@ -77,6 +81,7 @@ }, { "cell_type": "markdown", + "id": "d7f75388", "metadata": {}, "source": [ "" @@ -84,6 +89,7 @@ }, { "cell_type": "markdown", + "id": "0ca9b3bb", "metadata": {}, "source": [ "# 1. Create default PV \n", @@ -94,6 +100,7 @@ { "cell_type": "code", "execution_count": 4, + "id": "3f4b76f4", "metadata": {}, "outputs": [], "source": [ @@ -102,6 +109,7 @@ }, { "cell_type": "markdown", + "id": "8244a7a8", "metadata": {}, "source": [ "You can explore attributes of the pySAM object with the below cell. This will give variables, methods, etc." @@ -110,6 +118,7 @@ { "cell_type": "code", "execution_count": 5, + "id": "20ce4c43", "metadata": {}, "outputs": [], "source": [ @@ -118,6 +127,7 @@ }, { "cell_type": "markdown", + "id": "24b0a7a6", "metadata": {}, "source": [ "You can also query a single attribute. And export it to see the contents more easily " @@ -126,6 +136,7 @@ { "cell_type": "code", "execution_count": 6, + "id": "c83343eb", "metadata": {}, "outputs": [ { @@ -8288,6 +8299,7 @@ }, { "cell_type": "markdown", + "id": "b494a44a", "metadata": {}, "source": [ "Or save it as a csv if you want to explore the categories and variables" @@ -8296,6 +8308,7 @@ { "cell_type": "code", "execution_count": 7, + "id": "5b9b3eaa", "metadata": {}, "outputs": [], "source": [ @@ -8320,6 +8333,7 @@ }, { "cell_type": "markdown", + "id": "fbbbcd1d", "metadata": {}, "source": [ "" @@ -8327,6 +8341,7 @@ }, { "cell_type": "markdown", + "id": "ae73e68c", "metadata": {}, "source": [ "" @@ -8334,6 +8349,7 @@ }, { "cell_type": "markdown", + "id": "d8cdbd70", "metadata": {}, "source": [ "# 2. Set values that should not be default to represent our system:" @@ -8342,6 +8358,7 @@ { "cell_type": "code", "execution_count": 8, + "id": "eaeb2d2f", "metadata": {}, "outputs": [], "source": [ @@ -8375,6 +8392,7 @@ { "cell_type": "code", "execution_count": 9, + "id": "366b3bda", "metadata": {}, "outputs": [], "source": [ @@ -8404,6 +8422,7 @@ }, { "cell_type": "markdown", + "id": "5f204deb", "metadata": {}, "source": [ "We are going to use the method 'assign', becasue that only replaces the values we are providing. 'replace' replaces all the internally generated dictionary entries with only the ones we are providing. " @@ -8412,6 +8431,7 @@ { "cell_type": "code", "execution_count": 10, + "id": "bedae8e6", "metadata": {}, "outputs": [], "source": [ @@ -8420,6 +8440,7 @@ }, { "cell_type": "markdown", + "id": "b08eb76c", "metadata": {}, "source": [ "" @@ -8427,6 +8448,7 @@ }, { "cell_type": "markdown", + "id": "8d62a271", "metadata": {}, "source": [ "# 3. Assign Solar Resource\n", @@ -8437,6 +8459,7 @@ { "cell_type": "code", "execution_count": 11, + "id": "b69c8ec4", "metadata": {}, "outputs": [], "source": [ @@ -8445,6 +8468,7 @@ }, { "cell_type": "markdown", + "id": "3c3e333b", "metadata": {}, "source": [ "" @@ -8452,6 +8476,7 @@ }, { "cell_type": "markdown", + "id": "6def5ed3", "metadata": {}, "source": [ "# 4. Obtaining the MODULE Data\n", @@ -8463,6 +8488,7 @@ }, { "cell_type": "markdown", + "id": "29b1f641", "metadata": {}, "source": [ "" @@ -8470,6 +8496,7 @@ }, { "cell_type": "markdown", + "id": "89563d10", "metadata": {}, "source": [ "### 4A. Using PVLib" @@ -8478,6 +8505,7 @@ { "cell_type": "code", "execution_count": 12, + "id": "c210ed87", "metadata": {}, "outputs": [ { @@ -8705,6 +8733,7 @@ }, { "cell_type": "markdown", + "id": "755749a4", "metadata": {}, "source": [ "The Module we want for this simulation has this name in SAM: \"Prism Solar Technologies_ Inc. Bi72-457BSTC\" . The name should be written similar with underscores, but is not always teh same in the database. To make it easier, we filter by keywords." @@ -8713,6 +8742,7 @@ { "cell_type": "code", "execution_count": 13, + "id": "2d39f53a", "metadata": {}, "outputs": [ { @@ -8886,6 +8916,7 @@ }, { "cell_type": "markdown", + "id": "8999deaa", "metadata": {}, "source": [ "Asigning variables about the bifaciality aspect of our site. This are saved inside the 'CECPerformanceModelWithModuleDatabase' but are not in the CEC table, they are default/user provided" @@ -8893,6 +8924,7 @@ }, { "cell_type": "markdown", + "id": "17117407", "metadata": {}, "source": [ "## B. Get File from the SAM repository URL" @@ -8901,6 +8933,7 @@ { "cell_type": "code", "execution_count": 14, + "id": "12e25184", "metadata": {}, "outputs": [ { @@ -9083,6 +9116,7 @@ { "cell_type": "code", "execution_count": 15, + "id": "f9e5dc1b", "metadata": {}, "outputs": [], "source": [ @@ -9091,6 +9125,7 @@ }, { "cell_type": "markdown", + "id": "ac2b8332", "metadata": {}, "source": [ "The URL you see when you navigate to the github looks like:\n", @@ -9105,6 +9140,7 @@ { "cell_type": "code", "execution_count": 16, + "id": "e4fc1295", "metadata": {}, "outputs": [], "source": [ @@ -9116,6 +9152,7 @@ }, { "cell_type": "markdown", + "id": "e3eeb507", "metadata": {}, "source": [ "
\n", @@ -9126,6 +9163,7 @@ { "cell_type": "code", "execution_count": 17, + "id": "b8149c61", "metadata": {}, "outputs": [], "source": [ @@ -9135,6 +9173,7 @@ { "cell_type": "code", "execution_count": 18, + "id": "ad1820b6", "metadata": {}, "outputs": [], "source": [ @@ -9149,6 +9188,7 @@ { "cell_type": "code", "execution_count": 19, + "id": "a3ee8d37", "metadata": {}, "outputs": [ { @@ -9167,6 +9207,7 @@ }, { "cell_type": "markdown", + "id": "99804486", "metadata": {}, "source": [ "#### Assign the Variables to the SAM object from the CEC data\n", @@ -9174,16 +9215,10 @@ "This are read as strings, so we need to make " ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 20, + "id": "85575b2d", "metadata": {}, "outputs": [ { @@ -9204,6 +9239,7 @@ { "cell_type": "code", "execution_count": 21, + "id": "f284a7fa", "metadata": {}, "outputs": [], "source": [ @@ -9235,6 +9271,7 @@ { "cell_type": "code", "execution_count": 22, + "id": "556cdefb", "metadata": {}, "outputs": [], "source": [ @@ -9253,6 +9290,7 @@ { "cell_type": "code", "execution_count": 23, + "id": "da2c7ab7", "metadata": {}, "outputs": [], "source": [ @@ -9287,6 +9325,7 @@ }, { "cell_type": "markdown", + "id": "7ce41f54", "metadata": {}, "source": [ "## Get Inverter Values\n", @@ -9297,6 +9336,7 @@ { "cell_type": "code", "execution_count": 24, + "id": "069c6b41", "metadata": {}, "outputs": [], "source": [ @@ -9307,6 +9347,7 @@ }, { "cell_type": "markdown", + "id": "75898abd", "metadata": {}, "source": [ "Our inverter is 'Fronius USA: Fronius Symo 10.0-3 480 [480V]'. Using the same look-up technique as with the module" @@ -9315,6 +9356,7 @@ { "cell_type": "code", "execution_count": 25, + "id": "29e596eb", "metadata": {}, "outputs": [ { @@ -9442,6 +9484,7 @@ { "cell_type": "code", "execution_count": 26, + "id": "c44f962f", "metadata": {}, "outputs": [], "source": [ @@ -9461,6 +9504,7 @@ }, { "cell_type": "markdown", + "id": "0150f1f2", "metadata": {}, "source": [ "You can set an individual value with __setattr__" @@ -9469,6 +9513,7 @@ { "cell_type": "code", "execution_count": 27, + "id": "7d534325", "metadata": {}, "outputs": [], "source": [ @@ -9477,6 +9522,7 @@ }, { "cell_type": "markdown", + "id": "1714b31e", "metadata": {}, "source": [ "Or do them all together like we've been doing in dictionary format" @@ -9485,6 +9531,7 @@ { "cell_type": "code", "execution_count": 28, + "id": "a351724e", "metadata": {}, "outputs": [], "source": [ @@ -9509,6 +9556,7 @@ }, { "cell_type": "markdown", + "id": "223893e8", "metadata": {}, "source": [ "# Assign VALUES From the GUI\n", @@ -9526,6 +9574,7 @@ { "cell_type": "code", "execution_count": 29, + "id": "2782b3aa", "metadata": {}, "outputs": [], "source": [ @@ -9542,6 +9591,7 @@ }, { "cell_type": "markdown", + "id": "0cee7b1b", "metadata": {}, "source": [ "# SAVING" @@ -9550,6 +9600,7 @@ { "cell_type": "code", "execution_count": 30, + "id": "286c2c8d", "metadata": {}, "outputs": [], "source": [ @@ -9559,6 +9610,7 @@ { "cell_type": "code", "execution_count": 31, + "id": "92e5b653", "metadata": {}, "outputs": [], "source": [ @@ -9568,6 +9620,7 @@ { "cell_type": "code", "execution_count": 45, + "id": "5e629ed0", "metadata": {}, "outputs": [ { @@ -9745,13 +9798,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, + "id": "8fd51a13", "metadata": {}, "outputs": [], "source": [ @@ -9771,31 +9818,9 @@ "workbook.close()" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", + "id": "910d7ac8", "metadata": {}, "source": [ "" @@ -9803,6 +9828,7 @@ }, { "cell_type": "markdown", + "id": "b8009ea7", "metadata": {}, "source": [ "# ::Extra:: Comparison of pySAM Default vs SAM GUI exported values" @@ -9810,6 +9836,7 @@ }, { "cell_type": "markdown", + "id": "46555ed3", "metadata": {}, "source": [ "If you have a JSON that you exported from SAM, it will look a bit different than the default pySAM object you created. pySAM groups all variables grouped by different categories. The below code will save that so you can compare the values between those of a SAM simulation and this default. Your SAM JSON will also have more variables for the grid, and economic calculation tabs which we have not created in the pySAM object yet." @@ -9818,6 +9845,7 @@ { "cell_type": "code", "execution_count": null, + "id": "7dd21153", "metadata": {}, "outputs": [], "source": [ @@ -9831,6 +9859,7 @@ { "cell_type": "code", "execution_count": null, + "id": "08f87ebf", "metadata": {}, "outputs": [], "source": [ @@ -9855,6 +9884,7 @@ { "cell_type": "code", "execution_count": null, + "id": "7f737e92", "metadata": {}, "outputs": [], "source": [ @@ -9876,6 +9906,7 @@ { "cell_type": "code", "execution_count": null, + "id": "c5ecd8c8", "metadata": {}, "outputs": [], "source": [ @@ -9889,6 +9920,7 @@ { "cell_type": "code", "execution_count": null, + "id": "6c853d14", "metadata": {}, "outputs": [], "source": [ @@ -9897,21 +9929,10 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, + "id": "bf17d318", "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'guiSAMdic' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mguiSAMdic\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mNameError\u001b[0m: name 'guiSAMdic' is not defined" - ] - } - ], + "outputs": [], "source": [ "guiSAMdic" ] @@ -9919,6 +9940,7 @@ { "cell_type": "code", "execution_count": null, + "id": "4fdb58a9", "metadata": {}, "outputs": [], "source": [ @@ -9930,7 +9952,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -9944,7 +9966,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.4" } }, "nbformat": 4,