===========================
Intro for CHIANTI IDL Users
===========================

ChiantiPy was not developed to be a clone of the CHIANTI IDL code.  The IDL code largely consists of functions that can be used to calculate or plot a variety of properties.  Structures are often used to carry the results of one function to be used by another.

ChiantiPy is object oriented.  For example, the building block of ChiantiPy is the **ion** class.  It carries with it all the methods that are needed as well as various calculated properties that are kept as attributes.  By following the Quick Start guide, you will become familiar with how ChiantiPy works.  Because one can always inquire, for example with `dir`, as to the methods and attributes of a an object, such as an ion, it is easy to remember what you might want to calculate next.  For example, you have created an object *myion*.  It is possible to then invoke

::

  myion.popPlot()
  
to plot the level populations of *myion*.  If you have not already calculated the levels populations, the **ion** class knows to calculate the level populations (*myion.populate()*) and save them for later use as the dictionary attribute *myion.Population* and then plot the specified level populations.  The level populations are then available as a 2 dimensional `numpy` array

::

  myion.Population['population']

Experience using the CHIANTI IDL package will provide the user with a background with what ChiantiPy can do.  However, the way to accomplish them are much easier but must be learned.  The best way to start is with the Quick Start guide and a book about Python.  Book suggestions are *Learning Python* by Mark Lutz and the handy *Python Pocket Reference*, also by Mark Lutz.  The first one is alway in reach and copies of the latter is on all of my computer desks.


