Skip to content

Commit c3613e4

Browse files
authored
Merge pull request #2 from mikofski/tutorial_0_slideshow
tutorial 0
2 parents 5a10f82 + 8e25c4e commit c3613e4

File tree

6 files changed

+434
-170
lines changed

6 files changed

+434
-170
lines changed

Tutorial 0 - Overview.html

Lines changed: 145 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -13116,15 +13116,76 @@
1311613116
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1311713117
</div><div class="inner_cell">
1311813118
<div class="text_cell_render border-box-sizing rendered_html">
13119-
<p><img src="https://pvlib-python.readthedocs.io/en/stable/_images/pvlib_logo_horiz.png" align="right" width="30%"></p>
13120-
<h1 id="Introduction">Introduction<a class="anchor-link" href="#Introduction">&#182;</a></h1><p>Welcome to the pvlib Tutorial.</p>
13121-
<p>pvliby is a community supported tool that provides a set of functions and classes for simulating the performance of photovoltaic energy systems.</p>
13122-
<p>pvlib introduces ............</p>
13119+
<p><img src="images/tutorial_banner.PNG" alt="tutorial banner"></p>
13120+
<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>
13121+
<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>
13122+
<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>
13123+
<p>We will review common vocabulary around python and <code>data aggregation</code> by hour, week, month, and visualization.</p>
13124+
<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>
13125+
<p>The tutorial will finalize with an overview of other available open-source tools for other aspects of modeling PV systems.</p>
13126+
13127+
</div>
13128+
</div>
13129+
</div>
13130+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13131+
</div><div class="inner_cell">
13132+
<div class="text_cell_render border-box-sizing rendered_html">
13133+
<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>
13134+
<table style='margin: 10 auto'>
13135+
13136+
13137+
<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.
13138+
<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>
13139+
13140+
<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>
13141+
13142+
<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>
13143+
13144+
</table>
13145+
</div>
13146+
</div>
13147+
</div>
13148+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13149+
</div><div class="inner_cell">
13150+
<div class="text_cell_render border-box-sizing rendered_html">
13151+
<h3 id="Learning-Objectives">Learning Objectives<a class="anchor-link" href="#Learning-Objectives">&#182;</a></h3><ol>
13152+
<li>Access weather data (TMY3), understand irradiance data, and visualize it monthly.</li>
13153+
<li>Calculate sun position, plane of array irradiance, and aggregate irradiance data into average daily insolation by month and year.</li>
13154+
<li>Calculate module temperature from ambient data. </li>
13155+
<li>Use POA and module temperature to forecast a module's performance. </li>
13156+
</ol>
13157+
<p><a href="images\tutorial_overview.PNG">Overview</a></p>
13158+
13159+
</div>
13160+
</div>
13161+
</div>
13162+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13163+
</div><div class="inner_cell">
13164+
<div class="text_cell_render border-box-sizing rendered_html">
13165+
<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>
13166+
<p>You want to know the sun position? No need to code from zero the SPA (Solar Position algorithm), it's in PVlib.</p>
13167+
<p>You want to reproduce the Sandia-King model to calculate module performance? It's there, also.</p>
13168+
<p>You can find the most well-known models, as well as recently accepted values and approaches in published PV literature.</p>
13169+
<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>
13170+
13171+
</div>
13172+
</div>
13173+
</div>
13174+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13175+
</div><div class="inner_cell">
13176+
<div class="text_cell_render border-box-sizing rendered_html">
1312313177
<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
13124-
allow you to run the turoial in the cloud without any additional setup. To get
13125-
started, simply click
13126-
<a href="https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/master?urlpath=lab">here</a>:
13178+
allow you to run the tutorial in the cloud without any additional setup. To get
13179+
started, simply click</p>
13180+
<p><a href="https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/master?urlpath=lab">here</a>:
1312713181
<a href="https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/master"><img src="https://mybinder.org/badge_logo.svg" alt="Binder"></a></p>
13182+
13183+
</div>
13184+
</div>
13185+
</div>
13186+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13187+
</div><div class="inner_cell">
13188+
<div class="text_cell_render border-box-sizing rendered_html">
1312813189
<p>If you choose to install the tutorial locally, follow these steps:</p>
1312913190
<ol>
1313013191
<li><p>Clone the repository:</p>
@@ -13143,38 +13204,54 @@ <h2 id="Tutorial-Setup">Tutorial Setup<a class="anchor-link" href="#Tutorial-Set
1314313204
<pre><code>jupyter lab</code></pre>
1314413205
</li>
1314513206
</ol>
13146-
<h2 id="Useful-links">Useful links<a class="anchor-link" href="#Useful-links">&#182;</a></h2><p><ol>
13207+
13208+
</div>
13209+
</div>
13210+
</div>
13211+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13212+
</div><div class="inner_cell">
13213+
<div class="text_cell_render border-box-sizing rendered_html">
13214+
<h2 id="Useful-links">Useful links<a class="anchor-link" href="#Useful-links">&#182;</a></h2><ol>
1314713215
<li>References</li>
1314813216
<ul>
13149-
<li> [Documentation](https://pvlib-python.readthedocs.io/en/stable/) </li>
13150-
<li> [Code Repository](https://github.com/pvlib/pvlib-python) </li>
13217+
<li> <a href="https://pvlib-python.readthedocs.io/en/stable/"> PVlib Documentation </a> </li>
13218+
<li> <a href="https://github.com/pvlib/pvlib-python"> Github Code Repository </a> </li>
1315113219
</ul>
1315213220
<li> Ask for help:</li>
1315313221
<ul>
13154-
<li> Use the [pvlib-python](https://stackoverflow.com/questions/tagged/pvlib-python) on
13155-
StackOverflow </li>
13156-
<li> [GitHub Issues](https://github.com/pyvlib/pvlib-python/issues) for bug reports and
13157-
feature requests </li>
13158-
<li> [Google Group - Discussions and more!](https://groups.google.com/g/pvlib-python)</li>
13159-
</ol></p>
13222+
<li> <a href="https://stackoverflow.com/questions/tagged/pvlib-python"> Use the pvlib-python tag on StackOverflow </a> </li>
13223+
<li> <a href="https://github.com/pyvlib/pvlib-python/issues"> Open an Issue on the Github Repository </a> </li>
13224+
<li> <a href="https://groups.google.com/g/pvlib-python"> Google Group - Discussions and more! </a> </li>
13225+
</ul>
13226+
</ol>
13227+
</div>
13228+
</div>
13229+
</div>
13230+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13231+
</div><div class="inner_cell">
13232+
<div class="text_cell_render border-box-sizing rendered_html">
1316013233
<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
1316113234
code, text, visualization, and exercises.</p>
1316213235
<p>If you haven't used JupyterLab before, it's similar to the Jupyter Notebook. If
1316313236
you haven't used the Notebook, the quick intro is</p>
1316413237
<ol>
13165-
<li>There are two modes: command and edit</li>
13166-
<li>From command mode, press Enter to edit a cell (like this markdown cell)</li>
13167-
<li>From edit mode, press Esc to change to command mode</li>
13168-
<li>Press shift+enter to execute a cell and move to the next cell.</li>
13238+
<li><p>There are two modes: <code>command</code> and <code>edit</code></p>
13239+
</li>
13240+
<li><p>From <code>command</code> mode, press <code>Enter</code> to edit a cell (like this markdown cell)</p>
13241+
</li>
13242+
<li><p>From <code>edit</code> mode, press <code>Esc</code> to change to command mode</p>
13243+
</li>
13244+
<li>Press <code>shift+enter</code> to execute a cell and move to the next cell.</li>
1316913245
<li>The toolbar has commands for executing, converting, and creating cells.</li>
1317013246
</ol>
1317113247
<p>The layout of the tutorial will be as follows:</p>
13172-
<ol>
13173-
<li><a href="Tutorial 1 - TMY Weather Data.ipynb">Introduction + Weater Data</a></li>
13174-
<li><a href="Tutorial 2 - POA Irradiance.ipynb">Working with irradiance to calculate POA</a></li>
13175-
<li><a href="Tutorial 3 - Module Temperature.ipynb">Calculate module temperature</a></li>
13176-
<li><a href="Tutorial 4 - Array Power.ipynb">Array Power</a></li>
13177-
</ol>
13248+
13249+
</div>
13250+
</div>
13251+
</div>
13252+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13253+
</div><div class="inner_cell">
13254+
<div class="text_cell_render border-box-sizing rendered_html">
1317813255
<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
1317913256
partially completed cell, followed by a hidden cell with a solution. For
1318013257
example.</p>
@@ -13185,39 +13262,70 @@ <h2 id="Exercise:-Print-Hello,-world!">Exercise: Print Hello, world!<a class="an
1318513262
</div>
1318613263
<div class="cell border-box-sizing code_cell rendered">
1318713264
<div class="input">
13188-
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
13265+
<div class="prompt input_prompt">In&nbsp;[5]:</div>
1318913266
<div class="inner_cell">
1319013267
<div class="input_area">
1319113268
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Your code here</span>
13269+
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Hello, world!&quot;</span><span class="p">)</span>
1319213270
</pre></div>
1319313271

1319413272
</div>
1319513273
</div>
1319613274
</div>
1319713275

13276+
<div class="output_wrapper">
13277+
<div class="output">
13278+
13279+
13280+
<div class="output_area">
13281+
13282+
<div class="prompt"></div>
13283+
13284+
13285+
<div class="output_subarea output_stream output_stdout output_text">
13286+
<pre>Hello, world!
13287+
</pre>
13288+
</div>
1319813289
</div>
13199-
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13200-
</div><div class="inner_cell">
13201-
<div class="text_cell_render border-box-sizing rendered_html">
13202-
<p>In some cases, the next cell will have the solution. Click the ellipses to
13203-
expand the solution, and always make sure to run the solution cell, in case
13204-
later sections of the notebook depend on the output from the solution.</p>
1320513290

1320613291
</div>
1320713292
</div>
13293+
1320813294
</div>
1320913295
<div class="cell border-box-sizing code_cell rendered">
1321013296
<div class="input">
13211-
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
13297+
<div class="prompt input_prompt">In&nbsp;[6]:</div>
1321213298
<div class="inner_cell">
1321313299
<div class="input_area">
13214-
<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>
13300+
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">a</span> <span class="o">=</span> <span class="mi">2</span>
13301+
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
13302+
<span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
1321513303
</pre></div>
1321613304

1321713305
</div>
1321813306
</div>
1321913307
</div>
1322013308

13309+
<div class="output_wrapper">
13310+
<div class="output">
13311+
13312+
13313+
<div class="output_area">
13314+
13315+
<div class="prompt output_prompt">Out[6]:</div>
13316+
13317+
13318+
13319+
13320+
<div class="output_text output_subarea output_execute_result">
13321+
<pre>5</pre>
13322+
</div>
13323+
13324+
</div>
13325+
13326+
</div>
13327+
</div>
13328+
1322113329
</div>
1322213330
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1322313331
</div><div class="inner_cell">
@@ -13228,34 +13336,13 @@ <h2 id="Going-Deeper">Going Deeper<a class="anchor-link" href="#Going-Deeper">&#
1322813336
need not be explored in any particular sequence, instead they are meant to
1322913337
provide a sampling of what pvlib can be used for.</p>
1323013338
<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>
13231-
<li><p><a href="https://pvlib-python.readthedocs.io/en/stable/auto_examples/index.html">Sun path diagram</a>:
13339+
<li><a href="https://pvlib-python.readthedocs.io/en/stable/auto_examples/index.html">Sun path diagram</a>:
1323213340
Start with <code>global_mean_surface_temp.ipynb</code> then feel free to explore the
13233-
rest of the notebooks.</p>
13234-
<!-- 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>
13235-
<li><p><a href="https://google.com">SOMETHING ELSE HERE</a>:
13236-
Write something here of another one of the tutorials.</p>
13237-
<!-- 1. [something something](https://google.com) --></li>
13341+
rest of the notebooks.</li>
1323813342
</ol>
13239-
<h3 id="PVLIB-and-Satellite-Data">PVLIB and Satellite Data<a class="anchor-link" href="#PVLIB-and-Satellite-Data">&#182;</a></h3><ol>
13240-
<li><a href="https://google.com">SOMETHING ELSE HERE</a>:
13241-
Write something here of another one of the tutorials. <!-- 1. [something something](https://google.com) --></li>
13242-
</ol>
13243-
13244-
</div>
13245-
</div>
13246-
</div>
13247-
<div class="cell border-box-sizing code_cell rendered">
13248-
<div class="input">
13249-
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
13250-
<div class="inner_cell">
13251-
<div class="input_area">
13252-
<div class=" highlight hl-ipython3"><pre><span></span>
13253-
</pre></div>
1325413343

13255-
</div>
1325613344
</div>
1325713345
</div>
13258-
1325913346
</div>
1326013347
</div>
1326113348
</div>

0 commit comments

Comments
 (0)