-
Notifications
You must be signed in to change notification settings - Fork 1k
GSoC 2020 Project
pvlib python is the world's most popular open source library for solar power modeling. We are participating in the 2020 Google Summer of Code (GSoC) under the NumFOCUS GSoC application. Come help us improve and extend these capabilities, and learn about solar power in the process!
Please read the Students contributing guide on the NumFOCUS GSoC repo. Also check out the list of pvlib project ideas below!
Below is a list of ideas of projects that GSoC participants can choose to work on in pvlib python.
Project Description: Create python scripts, jupyter notebooks, or stack overflow Q/A showing how to use pvlib-python for several common use cases for solar power modeling. Priority use cases include:
- Calculating annual energy for a PV system at a given location and orientation, showing use of different models for plane-of-array irradiance, DC power, and cell temperature.
- Comparing power output between fixed-tilt and tracking PV systems.
- Calculating and comparing irradiance from various clear-sky models.
- Comparing power output from a PV system using different PV panels and/or inverters in the system. Mentors will provide detailed descriptions of the use cases, guidance on the modeling process and usage of pvlib-python.
Expected Outcomes: The primary outcome is a set of python scripts in docs/examples, notebooks in docs/tutorials, or questions and answers on stackoverflow. A secondary outcome is to identify improvements to pvlib-python for usability and flexibility.
Skills Required / Preferred: python (required), familiarity with solar power modeling preferred, but not required.
Mentors: Cliff Hansen, Mark Mikofski, Will Holmgren
Difficulty: Medium
Project Description: pvlib python documentation pages are not well-organized. Start with a blank page and create effective, beautiful documentation for pvlib python. Examples of documentation to emulate include SunPy.
Expected Outcomes: The primary outcome is source code for a set of documentation pages. Most source code will be in ReStructuredText format.
Skills Required / Preferred: Required: Technical writing. Preferred: Familiarity with python, sphinx, doctests, solar power modeling
Mentors: Cliff Hansen, Will Holmgren
Difficulty: Medium
Project Description: pvlib python doesn't have any benchmarking #419 to test how long the model chain takes to execute and whether performance is improving or slowing down. Solar power simulation often requires analyzing very long (multi-year) or high-resolution (sub-hour) time-series, therefore benchmarking performance and profiling is important to analysts. The goal of this project is to implement AirSpeed Velocity (asv) benchmarks and other profiling tools to measure and record performance over time, and to identify bottlenecks for improvement.
Expected Outcomes: Benchmarking is measured by one of the CI or GitHub Actions/Checks.
Skills Required / Preferred: Python, curiosity, desire to learn, knowledge of asv, profiling, or benchmarks desirable
Mentors: Mark Mikofski, Cliff Hansen, Will Holmgren
Difficulty: Medium
- Will Holmgren [email protected]
- Cliff Hansen [email protected]
- Mark Mikofski [email protected]
- Due date for proposals is Feb 5th, target date is mid-January.
- NumFOCUS GSoC 2020 Coordinator: Mridul Seth [email protected]
- The NumFOCUS umbrella GSoC repo is here: https://github.com/NumFOCUS/gsoc -- make sure ideas page (this), contact, source code, and main site links are correct
- Examples of other proposals here: https://github.com/pymc-devs/pymc3/wiki/GSoC-2020-projects
- Official Google guidelines here: https://google.github.io/gsocguides/mentor/defining-a-project-ideas-list
- According to NumFOCUS organizers, past projects like matplotlib have observed that each student may need have 2-3 mentors.
From official guidelines:
Each project on the Ideas list should include:
- a project title/description
- more detailed description of the project (2-5 sentences)
- expected outcomes
- skills required/preferred
- possible mentors. And if possible, an easy, medium or hard rating of each project.