Skip to content

snowdj/PVSC48-Python-Tutorial

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>PVSC48-Python-Tutorial &#8212; PVSC 48 Python Tutorial</title>
    
  <link href="_static/css/theme.css" rel="stylesheet" />
  <link href="_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css" rel="stylesheet" />

    
  <link rel="stylesheet"
    href="_static/vendor/fontawesome/5.13.0/css/all.min.css">
  <link rel="preload" as="font" type="font/woff2" crossorigin
    href="_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2">
  <link rel="preload" as="font" type="font/woff2" crossorigin
    href="_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2">

    
      

    
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" />
    <link rel="stylesheet" type="text/css" href="_static/togglebutton.css" />
    <link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
    <link rel="stylesheet" type="text/css" href="_static/mystnb.css" />
    <link rel="stylesheet" type="text/css" href="_static/sphinx-thebe.css" />
    <link rel="stylesheet" type="text/css" href="_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css" />
    <link rel="stylesheet" type="text/css" href="_static/panels-variables.06eb56fa6e07937060861dad626602ad.css" />
    
  <link rel="preload" as="script" href="_static/js/index.1c5a1a01449ed65a7b51.js">

    <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
    <script src="_static/jquery.js"></script>
    <script src="_static/underscore.js"></script>
    <script src="_static/doctools.js"></script>
    <script src="_static/togglebutton.js"></script>
    <script src="_static/clipboard.min.js"></script>
    <script src="_static/copybutton.js"></script>
    <script >var togglebuttonSelector = '.toggle, .admonition.dropdown, .tag_hide_input div.cell_input, .tag_hide-input div.cell_input, .tag_hide_output div.cell_output, .tag_hide-output div.cell_output, .tag_hide_cell.cell, .tag_hide-cell.cell';</script>
    <script src="_static/sphinx-book-theme.12a9622fbb08dcb3a2a40b2c02b83a57.js"></script>
    <script async="async" src="https://unpkg.com/thebelab@latest/lib/index.js"></script>
    <script >
        const thebe_selector = ".thebe,.cell"
        const thebe_selector_input = "pre,.cell_input div.highlight"
        const thebe_selector_output = ".output,.cell_output"
    </script>
    <script async="async" src="_static/sphinx-thebe.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="docsearch:language" content="en" />
    
  </head>
  <body data-spy="scroll" data-target="#bd-toc-nav" data-offset="80">
    
    <div class="container-fluid" id="banner"></div>

    

    <div class="container-xl">
      <div class="row">
          
<div class="col-12 col-md-3 bd-sidebar site-navigation show" id="site-navigation">
    
        <div class="navbar-brand-box">
    <a class="navbar-brand text-wrap" href="index.html">
      
      <img src="_static/tutorial_banner.PNG" class="logo" alt="logo">
      
      
      <h1 class="site-logo" id="site-title">PVSC 48 Python Tutorial</h1>
      
    </a>
</div><form class="bd-search d-flex align-items-center" action="search.html" method="get">
  <i class="icon fas fa-search"></i>
  <input type="search" class="form-control" name="q" id="search-input" placeholder="Search this book..." aria-label="Search this book..." autocomplete="off" >
</form><nav class="bd-links" id="bd-docs-nav" aria-label="Main navigation">
    <div class="bd-toc-item active">
        <ul class="nav bd-sidenav">
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%200%20-%20Overview.html">
   Welcome!
  </a>
 </li>
</ul>
<ul class="nav bd-sidenav">
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%201%20-%20TMY%20Weather%20Data.html">
   Tutorial 1 - Weather Data: Accesing it, understanding it, visualizing it!
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%202%20-%20POA%20Irradiance.html">
   Tutorial 2 - POA Irradiance
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%203%20-%20Module%20Temperature.html">
   Tutorial 3 - Module Temperature
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%204%20-%20Model%20a%20Module%27s%20Performance.html">
   Tutorial 4 - PV Module Performance
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%205%20-%20Array%20Power.html">
   Tutorial 5 - Array Power
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%20A%20-%20Single%20Diode%20Model.html">
   Tutorial A - Single Diode Model
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="Tutorial%20B%20-%20pvfree.html">
   Tutorial B - pvfree
  </a>
 </li>
</ul>

    </div>
</nav> <!-- To handle the deprecated key -->

<div class="navbar_extra_footer">
  Powered by <a href="https://jupyterbook.org">Jupyter Book</a>
</div>

</div>


          


          
<main class="col py-md-3 pl-md-4 bd-content overflow-auto" role="main">
    
    <div class="topbar container-xl fixed-top">
    <div class="topbar-contents row">
        <div class="col-12 col-md-3 bd-topbar-whitespace site-navigation show"></div>
        <div class="col pl-md-4 topbar-main">
            
            <button id="navbar-toggler" class="navbar-toggler ml-0" type="button" data-toggle="collapse"
                data-toggle="tooltip" data-placement="bottom" data-target=".site-navigation" aria-controls="navbar-menu"
                aria-expanded="true" aria-label="Toggle navigation" aria-controls="site-navigation"
                title="Toggle navigation" data-toggle="tooltip" data-placement="left">
                <i class="fas fa-bars"></i>
                <i class="fas fa-arrow-left"></i>
                <i class="fas fa-arrow-up"></i>
            </button>
            
            
<div class="dropdown-buttons-trigger">
    <button id="dropdown-buttons-trigger" class="btn btn-secondary topbarbtn" aria-label="Download this page"><i
            class="fas fa-download"></i></button>

    <div class="dropdown-buttons">
        <!-- ipynb file if we had a myst markdown file -->
        
        <!-- Download raw file -->
        <a class="dropdown-buttons" href="_sources/README.md"><button type="button"
                class="btn btn-secondary topbarbtn" title="Download source file" data-toggle="tooltip"
                data-placement="left">.md</button></a>
        <!-- Download PDF via print -->
        <button type="button" id="download-print" class="btn btn-secondary topbarbtn" title="Print to PDF"
            onClick="window.print()" data-toggle="tooltip" data-placement="left">.pdf</button>
    </div>
</div>

            <!-- Source interaction buttons -->

<div class="dropdown-buttons-trigger">
    <button id="dropdown-buttons-trigger" class="btn btn-secondary topbarbtn"
        aria-label="Connect with source repository"><i class="fab fa-github"></i></button>
    <div class="dropdown-buttons sourcebuttons">
        <a class="repository-button"
            href="https://github.com/PVSC-Python-Tutorials/PVSC48-Python-Tutorial"><button type="button" class="btn btn-secondary topbarbtn"
                data-toggle="tooltip" data-placement="left" title="Source repository"><i
                    class="fab fa-github"></i>repository</button></a>
        <a class="issues-button"
            href="https://github.com/PVSC-Python-Tutorials/PVSC48-Python-Tutorial/issues/new?title=Issue%20on%20page%20%2FREADME.html&body=Your%20issue%20content%20here."><button
                type="button" class="btn btn-secondary topbarbtn" data-toggle="tooltip" data-placement="left"
                title="Open an issue"><i class="fas fa-lightbulb"></i>open issue</button></a>
        
    </div>
</div>

            <!-- Full screen (wrap in <a> to have style consistency -->

<a class="full-screen-button"><button type="button" class="btn btn-secondary topbarbtn" data-toggle="tooltip"
        data-placement="bottom" onclick="toggleFullScreen()" aria-label="Fullscreen mode"
        title="Fullscreen mode"><i
            class="fas fa-expand"></i></button></a>

            <!-- Launch buttons -->

        </div>

        <!-- Table of contents -->
        <div class="d-none d-md-block col-md-2 bd-toc show">
            
            <div class="tocsection onthispage pt-5 pb-3">
                <i class="fas fa-list"></i> Contents
            </div>
            <nav id="bd-toc-nav">
                <ul class="visible nav section-nav flex-column">
 <li class="toc-h2 nav-item toc-entry">
  <a class="reference internal nav-link" href="#tutorial-summary">
   Tutorial Summary:
  </a>
 </li>
 <li class="toc-h2 nav-item toc-entry">
  <a class="reference internal nav-link" href="#tutorial-setup">
   Tutorial Setup
  </a>
  <ul class="nav section-nav flex-column">
   <li class="toc-h3 nav-item toc-entry">
    <a class="reference internal nav-link" href="#this-is-a-2-step-process">
     THIS IS A 2-STEP PROCESS
    </a>
   </li>
   <li class="toc-h3 nav-item toc-entry">
    <a class="reference internal nav-link" href="#jupyter-book-docs">
     Jupyter Book docs
    </a>
   </li>
   <li class="toc-h3 nav-item toc-entry">
    <a class="reference internal nav-link" href="#my-binder">
     My Binder
    </a>
   </li>
   <li class="toc-h3 nav-item toc-entry">
    <a class="reference internal nav-link" href="#locally">
     Locally
    </a>
   </li>
   <li class="toc-h3 nav-item toc-entry">
    <a class="reference internal nav-link" href="#licensing">
     Licensing
    </a>
   </li>
  </ul>
 </li>
</ul>

            </nav>
        </div>
    </div>
</div>
    <div id="main-content" class="row">
        <div class="col-12 col-md-9 pl-md-3 pr-md-0">
        
              <div>
                
  <p><img alt="tutorialpromo" src="_images/tutorial_banner.PNG" /></p>
<div class="section" id="pvsc48-python-tutorial">
<h1>PVSC48-Python-Tutorial<a class="headerlink" href="#pvsc48-python-tutorial" title="Permalink to this headline">¶</a></h1>
<p>PVSC48 computing tutorial with focus on PV computing packages, Python, data
wrangling with Pandas, and data viz</p>
<div class="section" id="tutorial-summary">
<h2>Tutorial Summary:<a class="headerlink" href="#tutorial-summary" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><strong>Tutorial 0</strong>: Introduction to the tutorial, the lesson plan, and resources (~30 minutes)</p></li>
<li><p><strong>Tutorial 1</strong>: Access TMY weather data and visualize monthly irradiance data (~30 minutes)</p></li>
<li><p><strong>Tutorial 2</strong>: Calculate solar position, plane-of-array irradiance, and
visualize average daily insolation (30 minutes)</p></li>
<li><p><strong>Tutorial 3</strong>: Estimate module temperature from ambient (~20 minutes)</p></li>
<li><p><strong>Tutorial 4</strong>: Use POA irradiance and module temperature to model output power
from a single module (~20 minutes)</p></li>
<li><p><strong>Tutorial 5</strong>: Combine modules to form strings, calculate inverter efficiency
and total array output (~independent study)</p></li>
<li><p><strong>Tutorials Appendices</strong>: More tutorials on a variety of fun topics (~independent study)</p></li>
</ul>
</div>
<div class="section" id="tutorial-setup">
<h2>Tutorial Setup<a class="headerlink" href="#tutorial-setup" title="Permalink to this headline">¶</a></h2>
<p>These tutorials are designed to run on <a class="reference external" href="https://jupyter.org">Jupyter</a>, a
browser based interactive notebook that allows you to run the tutorial in the
cloud without any additional setup. On the day of the tutorial, you can log
into the tutorial <a class="reference external" href="http://pvsc-python-tutorial.ml/">here</a>.</p>
<div class="section" id="this-is-a-2-step-process">
<h3>THIS IS A 2-STEP PROCESS<a class="headerlink" href="#this-is-a-2-step-process" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p><strong>STEP 1</strong>: click <a class="reference external" href="http://pvsc-python-tutorial.ml/">this</a> –&gt; <a class="reference external" href="http://pvsc-python-tutorial.ml/">http://pvsc-python-tutorial.ml/</a></p></li>
<li><p><strong>STEP 2</strong>: click <a class="reference external" href="https://pvsc-python-tutorial.ml/hub/user-redirect/git-pull?repo=https://github.com/PVSC-Python-Tutorials/PVSC48-Python-Tutorial&amp;branch=main">this</a> –&gt; <a class="reference external" href="https://pvsc-python-tutorial.ml/hub/user-redirect/git-pull?repo=https://github.com/PVSC-Python-Tutorials/PVSC48-Python-Tutorial&amp;branch=main">https://pvsc-python-tutorial.ml/hub/user-redirect/git-pull?repo=https://github.com/PVSC-Python-Tutorials/PVSC48-Python-Tutorial&amp;branch=main</a></p></li>
</ul>
<p>The first time you visit the tutorial, you will need to create an account. Use
any username and password you like.</p>
<p><img alt="jupyter login" src="https://user-images.githubusercontent.com/1385621/119911747-c9bd3600-bf0e-11eb-8f7b-c622d8890f04.png" /></p>
<p>The first time you log into the tutorial, you will only see the scratch and shared-data folders.</p>
<p><img alt="first login" src="https://user-images.githubusercontent.com/1385621/119912003-5cf66b80-bf0f-11eb-874d-67ba2ff1bb66.png" /></p>
<p>After you log in, you need to download the tutorial from this GitHub repository by following this
<a class="reference external" href="https://pvsc-python-tutorial.ml/hub/user-redirect/git-pull?repo=https://github.com/PVSC-Python-Tutorials/PVSC48-Python-Tutorial&amp;branch=main">link</a>:</p>
<p>You only need to download the repository once, but you can always use either link to start the tutorial during the conference.
From now on you will see the PVSC48-Python-Tutorial folder in the list.</p>
<p><img alt="download tutorial" src="https://user-images.githubusercontent.com/1385621/119912192-ce361e80-bf0f-11eb-8f62-36e54509fdcc.png" /></p>
<p>Click the folder to open, and you’ll see the full list. Click <code class="docutils literal notranslate"><span class="pre">Tutorial</span> <span class="pre">0</span> <span class="pre">-</span> <span class="pre">Overview.ipynb</span></code> to get started.</p>
<p><img alt="full list of tutorials" src="https://user-images.githubusercontent.com/1385621/119912314-15241400-bf10-11eb-8a2c-1fc371e0f4e8.png" /></p>
<p>Sometimes, if you are idle too long, the tutorial dies. Just click the <a class="reference external" href="http://pvsc-python-tutorial.ml/">link to the tutorial</a> again to reconnect.</p>
<p><a class="reference external" href="http://pvsc-python-tutorial.ml/">http://pvsc-python-tutorial.ml/</a></p>
</div>
<div class="section" id="jupyter-book-docs">
<h3>Jupyter Book docs<a class="headerlink" href="#jupyter-book-docs" title="Permalink to this headline">¶</a></h3>
<p>The full tutorial is now also hosted as a beautiful <a class="reference external" href="https://jupyterbook.org/intro.html">Jupyter book</a>. This book has navigation, search, and can even run code cells interactively. Check it out!</p>
<p><a class="reference external" href="https://pvsc-python-tutorials.github.io/PVSC48-Python-Tutorial/index.html">https://pvsc-python-tutorials.github.io/PVSC48-Python-Tutorial/index.html</a></p>
</div>
<div class="section" id="my-binder">
<h3>My Binder<a class="headerlink" href="#my-binder" title="Permalink to this headline">¶</a></h3>
<p>After the conference the tutorials will remain available here on GitHub, and you can run
the tutorial anytime in <a class="reference external" href="https://mybinder.org">Binder</a> by clicking the
following link:</p>
<p><a class="reference external" href="https://mybinder.org/v2/gh/PVSC-Python-Tutorials/PVSC48-Python-Tutorial/main"><img alt="Binder" src="https://mybinder.org/badge_logo.svg" /></a></p>
</div>
<div class="section" id="locally">
<h3>Locally<a class="headerlink" href="#locally" title="Permalink to this headline">¶</a></h3>
<p>You can also run the tutorial locally with
<a class="reference external" href="https://docs.conda.io/en/latest/miniconda.html">miniconda</a> by following thes
steps:</p>
<ol>
<li><p>Install <a class="reference external" href="https://docs.conda.io/en/latest/miniconda.html">miniconda</a>.</p></li>
<li><p>Clone the repository:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">PVSC</span><span class="o">-</span><span class="n">Python</span><span class="o">-</span><span class="n">Tutorials</span><span class="o">/</span><span class="n">PVSC48</span><span class="o">-</span><span class="n">Python</span><span class="o">-</span><span class="n">Tutorial</span><span class="o">.</span><span class="n">git</span>
</pre></div>
</div>
</li>
<li><p>Create the environment and install the requirements. The repository includes
a <code class="docutils literal notranslate"><span class="pre">requirements.txt</span></code> file that contains a list the packages needed to run
this tutorial. To install them using conda run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conda</span> <span class="n">create</span> <span class="o">-</span><span class="n">n</span> <span class="n">pvsc48</span> <span class="n">jupyter</span> <span class="o">-</span><span class="n">c</span> <span class="n">pvlib</span> <span class="o">--</span><span class="n">file</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>
<span class="n">conda</span> <span class="n">activate</span> <span class="n">pvsc48</span>
</pre></div>
</div>
</li>
<li><p>Start a Jupyter session:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">jupyter</span> <span class="n">notebook</span>
</pre></div>
</div>
</li>
<li><p>Use the file explorer in Jupyter lab to browse to <code class="docutils literal notranslate"><span class="pre">PVSC48-Python-Tutorial</span></code>
and start the first Tutorial.</p></li>
</ol>
</div>
<div class="section" id="licensing">
<h3>Licensing<a class="headerlink" href="#licensing" title="Permalink to this headline">¶</a></h3>
<p><a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p>
</div>
</div>
</div>

    <script type="text/x-thebe-config">
    {
        requestKernel: true,
        binderOptions: {
            repo: "PVSC-Python-Tutorials/PVSC48-Python-Tutorial",
            ref: "main",
        },
        codeMirrorConfig: {
            theme: "abcdef",
            mode: "python"
        },
        kernelOptions: {
            kernelName: "python3",
            path: "./."
        },
        predefinedOutput: true
    }
    </script>
    <script>kernelName = 'python3'</script>

              </div>
              
        
        <div class='prev-next-bottom'>
            

        </div>
        
        </div>
    </div>
    <footer class="footer mt-5 mt-md-0">
    <div class="container">
      <p>
        
          By Silvana Ayala Pelaez, Mark Mikofski, Kevin Anderson<br/>
        
            &copy; Copyright 2021.<br/>
      </p>
    </div>
  </footer>
</main>


      </div>
    </div>
  
  <script src="_static/js/index.1c5a1a01449ed65a7b51.js"></script>

  
  </body>
</html>

About

PVSC48 computing tutorial with focus on PV computing packages, Python, data wrangling with Pandas, and data viz

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%