---
# System prepended metadata

title: 'PlasmaPy Langmuir Meeting | Monday 2020 November 23 at 11:00 PT / 14:00 ET'
tags: [diagnostics, ' minutes', ' langmuir']

---

---
tags: diagnostics, langmuir, minutes
---

# PlasmaPy Langmuir Meeting | Monday 2020 November 23 at 11:00 PT / 14:00 ET

[![hackmd-github-sync-badge](https://hackmd.io/cxrk4rDlQlit4XDEXRMoQA/badge)](https://hackmd.io/cxrk4rDlQlit4XDEXRMoQA)

### Video Conference Information
* Instant messaging: [Matrix](https://element.im/app/#/room/#plasmapy:openastronomy.org) and [Gitter](https://gitter.im/PlasmaPy/Lobby)
* [GitHub Minutes Repository](https://github.com/PlasmaPy/plasmapy-meeting-notes)
    * [Langmuir Sub-directory](https://github.com/PlasmaPy/plasmapy-meeting-notes/tree/master/langmuir_2020-present)
* [PlasmaPy on GitHub](https://github.com/PlasmaPy/plasmapy) ([pull requests](https://github.com/PlasmaPy/plasmapy/pulls), [issues](https://github.com/PlasmaPy/plasmapy/issues))
* [PlasmaPy Enhancement Proposals on GitHub](https://github.com/PlasmaPy/PlasmaPy-PLEPs)
* [PlasmaPy Google Calendar](https://calendar.google.com/calendar?cid=bzVsb3ZkcW0zaWxsam00ZTlrMDd2cmw5bWdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ)
* GitHub Project: [Prototype | Analysis, Diagnostic, and the Swept Langmuir](https://github.com/PlasmaPy/PlasmaPy/projects/19)

## Attendees

1. Erik
2. Steve
3. Gurleen

## Action Items

***Erik***
* Open PR to update fit_function Linear.root_solve that handles `m = 0` and `b = 0` cases
* Finish writing tests for `find_floating_potential()`
* Add to list of functionality the ability to find `Te` from fitting to the left side of the dI/dV peak.

***Gurleen***
* Implement a prominence "uncertainty" for `vp` inf `find_plasma_potential_didv()`.
    * for "uncertainty" will use FWHM of the peak
    * also report the prominence of the peak

***Future***
* open an issue to construct a metric that considers the signal noise when reporting the peaks "prominence" (`find_plasma_potential_didv()`)

## Agenda (please feel free to edit or add items)

1. Introductions
2. GitHub Project: [Prototype | Analysis, Diagnostic, and the Swept Langmuir](https://github.com/PlasmaPy/PlasmaPy/projects/19)
3. ...
4. ...
5. Issues
    1. ...
    2. ...
6. Pull requests in progress 
    1. [PR #889](https://github.com/PlasmaPy/PlasmaPy/pull/889): calculating floating potential
    2. [PR #897](https://github.com/PlasmaPy/PlasmaPy/pull/897): plasma potential via dI/dV
    3. [PR #813](https://github.com/PlasmaPy/PlasmaPy/pull/813): Langmuir & Diagnostic Framework

## Minutes

* fit functions to add
    * Gaussian
    * Gaussian + DC offset
    * Gaussian + Linear offset
    * Cauchy-Lorentz distribution
    * **Should first update Gaussian distribution in `plasmapy.formulary.distribution` and add the Cauchy distribution.**
* `find_plasma_potential_didv()`
    * it's difficult to attribute an uncertainty with the `vp` calculation since we don't have an analytical model to fit to the curve
    * a proposed "uncertainty" would use the peak width at some prominence level
    * Should this prominence be a fixed value, a level based on the signal-to-noise ratio, and/or an input argument?
    * [Steve's suggestion] use the prominence level equivalent to 1 sigma of a Gaussian
    * [Steve] prefers using the FWHM as the default width
    * Should report the prominence of the peak, but this does not encompass all the info
        * this gives the height above the baseline
        * it does not factor in the noise level of the signal
        * **for now we should stick with the peak prominence and open an issue to construct a metric that considers the signal noise**
    * possible peak fitters
        * Gaussian
        * Lorentzian
        * piecewise linear
        * piecewise Exponential+Linear
    * As an option, have `find_plasma_potential_didv()` find `Te` on request
      ```python
      def find_plasma_potential_didv(get_Te=false):
          ...
          # calculate didv
          didv_arr = ...
          didv_xpart = ...
          
          # find vp
          vp = ....
          
          if get_Te:
              # crop data for fit
              vp_index = ...
              didv_sub = didv_arr[start:vp_index]
              vsub = didv_xarr[start:vp_index]
              te_resutls = find_electron_temp_didv(vsub, didv_sub)
             
          return vp_results, te_results
        
      def find_electron_temp_didv(vdata, didvdata):
          # calc te by fitting
          return te_results
      ```

