Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
203 changes: 145 additions & 58 deletions Tutorial 0 - Overview.html
Original file line number Diff line number Diff line change
Expand Up @@ -13116,15 +13116,76 @@
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><img src="https://pvlib-python.readthedocs.io/en/stable/_images/pvlib_logo_horiz.png" align="right" width="30%"></p>
<h1 id="Introduction">Introduction<a class="anchor-link" href="#Introduction">&#182;</a></h1><p>Welcome to the pvlib Tutorial.</p>
<p>pvliby is a community supported tool that provides a set of functions and classes for simulating the performance of photovoltaic energy systems.</p>
<p>pvlib introduces ............</p>
<p><img src="images/tutorial_banner.PNG" alt="tutorial banner"></p>
<h1 id="Welcome!">Welcome!<a class="anchor-link" href="#Welcome!">&#182;</a></h1><p>Welcome to the PV Software 101: from Sun position to AC Output! tutorial</p>
<p>Modeling tools for all aspects of photovoltaic systems are rapidly growing, and there are solutions for many of the things you might want to simulate. Python is becoming one of the scientific languages of choice, and many open-source tools are available for PV modeling. This tutorial will focus on teaching attendees PV modeling in python through the use of PVlib.</p>
<p>In this interactive tutorial we will go from getting acquainted with some common data used or measured in pv systems (i.e. weather), to modeling the AC energy output of a single-axis tracker system. This includes learning and simulating sun position, plane of array irradiances, temperature models, single-diode models and more.</p>
<p>We will review common vocabulary around python and <code>data aggregation</code> by hour, week, month, and visualization.</p>
<p>The tutorial will present hands-on examples in python, enabled via jupyter notebooks and a Jupyterhub (remote hosted server for jupyter notebooks and python language) so you, the attende, don’t have to install anything, and follow along while we go over the theory and code! In case it's not obviuos, a computer <b> is </b> required.</p>
<p>The tutorial will finalize with an overview of other available open-source tools for other aspects of modeling PV systems.</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="More-on-your-teachers:">More on your teachers:<a class="anchor-link" href="#More-on-your-teachers:">&#182;</a></h3><p>The three of us have ample experience in data, coding, and PV field performance modeling, so bring all your questions.</p>
<table style='margin: 10 auto'>


<tr><td><img src="images/tutorial_0_mark.PNG"></td><td>Mark Mikofski. I research, analyze, and predict PV system performance, degradation, and reliability. My goal is to make modeling tools that are robust, accurate, fast, well-documented, and easy to use. I believe solar energy is an important resource that can be profitable and preserve our environment.
<br> <br> Specialties: solar energy, PV, thermodynamics, heat transfer, fluid dynamics, multiphysics, numerical methods, optimization, computer modeling, Python, MATLAB, COMSOL, Java, C#, C/C++, FORTRAN. </td></tr>

<tr><td><img src="images/tutorial_0_silvana.PNG"> </td><td>Silvana Ayala Pelaez. I am a research scientists at NREL, focusing mostly on bifacial PV system's performance, and circular economy. Python is my daily bread and butter for data analysis and building tools. </td></tr>

<tr><td><img src="images/tutorial_0_kevin.PNG"> </td><td>Kevin Anderson. I am a research scientists at NREL doing cool stuff! </td></tr>

</table>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Learning-Objectives">Learning Objectives<a class="anchor-link" href="#Learning-Objectives">&#182;</a></h3><ol>
<li>Access weather data (TMY3), understand irradiance data, and visualize it monthly.</li>
<li>Calculate sun position, plane of array irradiance, and aggregate irradiance data into average daily insolation by month and year.</li>
<li>Calculate module temperature from ambient data. </li>
<li>Use POA and module temperature to forecast a module's performance. </li>
</ol>
<p><a href="images\tutorial_overview.PNG">Overview</a></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Why-learn-this?">Why learn this?<a class="anchor-link" href="#Why-learn-this?">&#182;</a></h3><p>PV-lib is a library of algorithms and routines that you might encounter the need to use if you're donig anything PV-modeling related. It is managed by members of the PV research community, who make sure the formulas and code are not only sleek but accurate.</p>
<p>You want to know the sun position? No need to code from zero the SPA (Solar Position algorithm), it's in PVlib.</p>
<p>You want to reproduce the Sandia-King model to calculate module performance? It's there, also.</p>
<p>You can find the most well-known models, as well as recently accepted values and approaches in published PV literature.</p>
<p>We hope adding this tool to your skillset will empower you to do better, faster research with an already solid foundation. Don't reinvent the wheel!</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Tutorial-Setup">Tutorial Setup<a class="anchor-link" href="#Tutorial-Setup">&#182;</a></h2><p>This tutorial is designed to run on <a href="https://mybinder.org/">Binder</a>. This will
allow you to run the turoial in the cloud without any additional setup. To get
started, simply click
<a href="https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/master?urlpath=lab">here</a>:
allow you to run the tutorial in the cloud without any additional setup. To get
started, simply click</p>
<p><a href="https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/master?urlpath=lab">here</a>:
<a href="https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/master"><img src="https://mybinder.org/badge_logo.svg" alt="Binder"></a></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>If you choose to install the tutorial locally, follow these steps:</p>
<ol>
<li><p>Clone the repository:</p>
Expand All @@ -13143,38 +13204,54 @@ <h2 id="Tutorial-Setup">Tutorial Setup<a class="anchor-link" href="#Tutorial-Set
<pre><code>jupyter lab</code></pre>
</li>
</ol>
<h2 id="Useful-links">Useful links<a class="anchor-link" href="#Useful-links">&#182;</a></h2><p><ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Useful-links">Useful links<a class="anchor-link" href="#Useful-links">&#182;</a></h2><ol>
<li>References</li>
<ul>
<li> [Documentation](https://pvlib-python.readthedocs.io/en/stable/) </li>
<li> [Code Repository](https://github.com/pvlib/pvlib-python) </li>
<li> <a href="https://pvlib-python.readthedocs.io/en/stable/"> PVlib Documentation </a> </li>
<li> <a href="https://github.com/pvlib/pvlib-python"> Github Code Repository </a> </li>
</ul>
<li> Ask for help:</li>
<ul>
<li> Use the [pvlib-python](https://stackoverflow.com/questions/tagged/pvlib-python) on
StackOverflow </li>
<li> [GitHub Issues](https://github.com/pyvlib/pvlib-python/issues) for bug reports and
feature requests </li>
<li> [Google Group - Discussions and more!](https://groups.google.com/g/pvlib-python)</li>
</ol></p>
<li> <a href="https://stackoverflow.com/questions/tagged/pvlib-python"> Use the pvlib-python tag on StackOverflow </a> </li>
<li> <a href="https://github.com/pyvlib/pvlib-python/issues"> Open an Issue on the Github Repository </a> </li>
<li> <a href="https://groups.google.com/g/pvlib-python"> Google Group - Discussions and more! </a> </li>
</ul>
</ol>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Tutorial-Structure">Tutorial Structure<a class="anchor-link" href="#Tutorial-Structure">&#182;</a></h2><p>This tutorial is made up of multiple Jupyter Notebooks. These notebooks mix
code, text, visualization, and exercises.</p>
<p>If you haven't used JupyterLab before, it's similar to the Jupyter Notebook. If
you haven't used the Notebook, the quick intro is</p>
<ol>
<li>There are two modes: command and edit</li>
<li>From command mode, press Enter to edit a cell (like this markdown cell)</li>
<li>From edit mode, press Esc to change to command mode</li>
<li>Press shift+enter to execute a cell and move to the next cell.</li>
<li><p>There are two modes: <code>command</code> and <code>edit</code></p>
</li>
<li><p>From <code>command</code> mode, press <code>Enter</code> to edit a cell (like this markdown cell)</p>
</li>
<li><p>From <code>edit</code> mode, press <code>Esc</code> to change to command mode</p>
</li>
<li>Press <code>shift+enter</code> to execute a cell and move to the next cell.</li>
<li>The toolbar has commands for executing, converting, and creating cells.</li>
</ol>
<p>The layout of the tutorial will be as follows:</p>
<ol>
<li><a href="Tutorial 1 - TMY Weather Data.ipynb">Introduction + Weater Data</a></li>
<li><a href="Tutorial 2 - POA Irradiance.ipynb">Working with irradiance to calculate POA</a></li>
<li><a href="Tutorial 3 - Module Temperature.ipynb">Calculate module temperature</a></li>
<li><a href="Tutorial 4 - Array Power.ipynb">Array Power</a></li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Exercise:-Print-Hello,-world!">Exercise: Print Hello, world!<a class="anchor-link" href="#Exercise:-Print-Hello,-world!">&#182;</a></h2><p>Each notebook will have exercises for you to solve. You'll be given a blank or
partially completed cell, followed by a hidden cell with a solution. For
example.</p>
Expand All @@ -13185,39 +13262,70 @@ <h2 id="Exercise:-Print-Hello,-world!">Exercise: Print Hello, world!<a class="an
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Your code here</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Hello, world!&quot;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Hello, world!
</pre>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>In some cases, the next cell will have the solution. Click the ellipses to
expand the solution, and always make sure to run the solution cell, in case
later sections of the notebook depend on the output from the solution.</p>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Hello, world!&quot;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">a</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[6]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>5</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
Expand All @@ -13228,34 +13336,13 @@ <h2 id="Going-Deeper">Going Deeper<a class="anchor-link" href="#Going-Deeper">&#
need not be explored in any particular sequence, instead they are meant to
provide a sampling of what pvlib can be used for.</p>
<h3 id="PVLIB-and-Weather/Climate-Model-Data">PVLIB and Weather/Climate Model Data<a class="anchor-link" href="#PVLIB-and-Weather/Climate-Model-Data">&#182;</a></h3><ol>
<li><p><a href="https://pvlib-python.readthedocs.io/en/stable/auto_examples/index.html">Sun path diagram</a>:
<li><a href="https://pvlib-python.readthedocs.io/en/stable/auto_examples/index.html">Sun path diagram</a>:
Start with <code>global_mean_surface_temp.ipynb</code> then feel free to explore the
rest of the notebooks.</p>
<!-- 1. [Natural climate variability in the CESM Large Ensemble](https://aws-uswest2-binder.pangeo.io/v2/gh/NCAR/cesm-lens-aws/master?urlpath=lab) --></li>
<li><p><a href="https://google.com">SOMETHING ELSE HERE</a>:
Write something here of another one of the tutorials.</p>
<!-- 1. [something something](https://google.com) --></li>
rest of the notebooks.</li>
</ol>
<h3 id="PVLIB-and-Satellite-Data">PVLIB and Satellite Data<a class="anchor-link" href="#PVLIB-and-Satellite-Data">&#182;</a></h3><ol>
<li><a href="https://google.com">SOMETHING ELSE HERE</a>:
Write something here of another one of the tutorials. <!-- 1. [something something](https://google.com) --></li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>

</div>
</div>
</div>

</div>
</div>
</div>
Expand Down
Loading