Repository: PlasmaPy/PlasmaPy

Issue:
Create example notebook to introduce Astropy units and PlasmaPy's Particle class
Two of the most important things for PlasmaPy newcomers to learn are `astropy.units` and the `plasmapy.particles.Particle` class.  They're both needed to use other parts of the package, including `plasmapy.formulary`.  This notebook should be one of the first in the gallery.  It might make sense to do this as two notebooks if either section gets too long.

It would be helpful to introduce `astropy.units` with examples from plasma science.  It should be fairly cursory since readers could go to the Astropy docs themselves, but it should provide a good starting point.  Here's an initial brainstorm of things that might be helpful to include.   

 - [ ] Link to documentation from Astropy for more extensive information
 - [ ] Mention that we often do `import astropy.units as u`, and use `u` as an alias for `astropy.units` much like how we use `np` as an alias for NumPy
 - [ ] Mention that `astropy.units` takes care of unit conversions automatically
 - [ ] Mention that if we try to do something like `5 * u.s + 5 * u.m`, we'll end up getting a unit conversion error.  This acts as a check to make sure that we are not making any obvious units errors.
 - [ ] Introduce `u.Quantity` objects
 - [ ] I often use an example of converting barn-Mpc to teaspoons: `(u.barn * u.Mpc).to(u.imperial.tsp)`.  
 - [ ] Mention that we typically default to SI units
 - [ ] Discuss how eV can be treated as a temperature only by using the [`u.temperature_energy`](https://docs.astropy.org/en/stable/units/equivalencies.html#temperature-energy-equivalency) equivalency.  While plasma physicists often treat eV as a temperature, it's actually a unit of energy...which makes it a bit more challenging to deal with in a units package.
 - [ ] Mention importing fundamental constants from `astropy.constants` (e.g., `from astropy.constants import c, m_e, m_p`)

Here are some possibilities for introducing the `Particle` class:
 - [ ] Show how to create a `Particle` instance (e.g., doing `Particle("He-4 1+")`)
 - [ ] Link to the docs for `ParticleLike` (expanded in #985) for an extensive discussion of the valid ways of creating a `Particle`
 - [ ] Mention that some particles are pre-created (`from plasmapy.particles import proton, electron, neutron, alpha`)
 - [ ] Mention how to access the mass, charge, integer charge, etc. from a `Particle` instance
 - [ ] Mention how to create a `CustomParticle` instance

These are all ideas, and it would be okay to skip or adapt several of these suggestions.  Thanks in advance!




Discussion:
Good day! Can I take this? I am new to this project, but looks like this task is a good way to understand a lot of basic stuff.
As far as I know, no one is currently working on this so have at it.  @namurphy Was it your intention to have two separate notebooks, one for `astropy.units` and one for `Particles`, or combine them into one?  My intuition would be the former.  If that is the case, @davemus I'd probably split each notebook into a separate PR.  It should get through review quicker that way.
Got it. I will start from `astropy.units` and make 2 notebooks in separate PRs. Anyway, if we decide later, that there should be only one notebook, we can merge them in second PR.
Concerning Astropy's units, I would like to suggest using the notebook @namurphy (if I remember correctly...) presented during the hack-week, i.e. that one: https://github.com/PlasmaPy/hack-week-2021/blob/main/tutorials_and_notebooks/Getting_started_with_PlasmaPy.ipynb

If you think it needs some fine tuning or some more comments, I would be happy to provide those and let you guys correct it :-) 

Edit: Follow-up question is where do you guys want the notebooks to be located, I couldn't find a notebook folder somewhere ?

Resolving patch:
diff --git a/plasmapy/particles/atomic.py b/plasmapy/particles/atomic.py
--- a/plasmapy/particles/atomic.py
+++ b/plasmapy/particles/atomic.py
@@ -2,23 +2,23 @@
 
 __all__ = [
     "atomic_number",
-    "mass_number",
-    "standard_atomic_weight",
-    "particle_mass",
-    "isotopic_abundance",
     "charge_number",
+    "common_isotopes",
     "electric_charge",
+    "half_life",
     "integer_charge",
+    "isotopic_abundance",
     "is_stable",
-    "half_life",
     "known_isotopes",
-    "common_isotopes",
-    "stable_isotopes",
-    "reduced_mass",
-    "periodic_table_period",
-    "periodic_table_group",
+    "mass_number",
+    "particle_mass",
     "periodic_table_block",
     "periodic_table_category",
+    "periodic_table_group",
+    "periodic_table_period",
+    "reduced_mass",
+    "stable_isotopes",
+    "standard_atomic_weight",
 ]
 
 import astropy.constants as const


Test patch: