PyNeb  1.1.2
PyNeb Reference Manua
Diagnostics Class Reference

Inherits object.

Public Member Functions

def getDiagFromLabel (self, label)
 
def getDiags (self)
 
def getDiagLabels (self)
 
def getAllDiags (self)
 
def getAllDiagLabels (self)
 
def getUniqueAtoms (self)
 
def addDiag
 
def addAll (self)
 
def delDiag
 
def addDiagsFromObs (self, obs)
 
def setAtoms (self, atom_dic)
 
def addClabel (self, label, clabel)
 
def plot
 
def getCrossTemDen
 
def getDiagLimits (self, diag)
 

Public Attributes

 log_
 
 calling
 
 diags
 The dictionary containing the diagnostics. More...
 
 atomDict
 The dictionary containing the atoms used for the diagnostics. More...
 
 OmegaInterp
 

Detailed Description

Diagnostics is the class used to manage the diagnostics and to computed physical conditions 
    (electron temperatures and densities) from them. 
It is also the class that plots the diagnostic Te-Ne diagrams.

Member Function Documentation

def addAll (   self)
Insert all the possible diagnostics in the Object (no parameters)
def addClabel (   self,
  label,
  clabel 
)
Add an alternative label to a diagnostic that can be used when plotting diagnostic diagrams.
def addDiag (   self,
  label = None,
  diag_tuple = None,
  atom = None,
  wave_range = None 
)
Add diagnostics to the list of available diagnostics. It can either be one of the built-in diagnostics,
a new, user-defined one, or a subset of the built-in diagnostics corresponding to a given atom or wavelength.

Parameters:
    - label        a string or a list of strings describing the diagnostic, e.g. '[OIII] 4363/5007'. 
           If it is not a key of diags_dict (a diagnostic define by PyNeb), diag_tuple must also be specified
    - diag_tuple   a 3 elements tuple containing:
           + the atom, e.g. 'Ar5'
           + the algebraic description of the diagnostic, in terms of line wavelengths or blends or levels, 
             e.g. '(L(6435)+L(7006))/L(4626)'
           + the algebraic description of the error, e.g. 
             'RMS([E(6435)*L(6435)/(L(6435)+L(7006)), E(7006)*L(7006)/(L(6435)+L(7006)), E(4626)])'
    - atom         the selected atom, e.g. 'O3'
    - wave_range   the selected wavelength range
    
Usage:
diags.addDiag('[OIII] 4363/5007')
diags.addDiag('[OIII] 5007/51m', ('O3', 'L(5007)/L(51800)', 'RMS([E(51800), E(5007)])'))
diags.addDiag(atom='O3')
diags.addDiag(wave_range=[4000, 6000])
def addDiagsFromObs (   self,
  obs 
)
Add all the possible diagnostics that can be computed from an Observation object

Usage:
    diags.addDiagsFromObs(obs)
    
Parameter:
    obs     an Observation object
def delDiag (   self,
  label = None 
)
Remove a diagnostic, based on its label.

Parameter:
    - label  the label of the diagnostic ('all': removes all the diagnostics)
def getAllDiagLabels (   self)
Return the labels of all the possible diagnostics.
No parameter.
def getAllDiags (   self)
Return the definitions (tuples) of all the possible diagnostics.
No parameter.
def getCrossTemDen (   self,
  diag_tem,
  diag_den,
  value_tem = None,
  value_den = None,
  obs = None,
  i_obs = None,
  guess_tem = 10000,
  tol_tem = 1.,
  tol_den = 1.,
  max_iter = 5,
  maxError = 1e-3,
  start_tem = -1,
  end_tem = -1,
  start_den = -1,
  end_den = -1 
)
Cross-converge the temperature and density derived from two sensitive line ratios, by inputting the quantity 
derived with one line ratio into the other and then iterating.
The temperature- and density-sensitive ratios can be input directly or as an Observation object
    
Parameters:
    
- diag_tem   temperature-sensitive diagnostic line ratio
- diag_den   density-sensitive diagnostic line ratio
- value_tem  value of the temperature-sensitive diagnostic
- value_den  value of the density-sensitive diagnostic
- obs        np.Observation object. Values for observed temperature and density diagnostics are
        taken from it if value_tem and value_den are None
- i_obs      index of the observations to be used from obs. 
        If None, all the observations are considered.
        May be a boolean array
- guess_tem  temperature assumed in the first iteration, in K
- tol_tem    tolerance of the temperature result, in %
- tol_den    tolerance of the density result, in %
- max_iter   maximum number of iterations to be performed, after which the function will throw a result
- maxError   maximum error in the calls to getTemDen, in %
- start_tem, end_tem  lower and upper limit of the explored temperature range 
- start_den, end_den  lower and upper limit of the explored density range 
    
Example:
    tem, den = diags.getCrossTemDen('[OIII] 4363/5007', '[SII] 6731/6716', 0.0050, 1.0, 
        guess_tem=10000, tol_tem = 1., tol_den = 1., max_iter = 5)
def getDiagFromLabel (   self,
  label 
)
Return the definition of a diagnostic (the 3 or 4 elements tuple)

Usage:
    diags.getDiagFromLabel('[NII] 5755/6548')

Parameters:
    -label a diagnostic label 
def getDiagLabels (   self)
Return the labels of all the diagnostics defined in the Object
No parameter.
def getDiagLimits (   self,
  diag 
)
Return the low and high density values for a given diagnostic
def getDiags (   self)
Return the definitions (tuples) of all the diagnostics defined in the Object.
No parameter.
def getUniqueAtoms (   self)
Return a numpy.ndarray of the ions needed by the diagnostics. Unique is applied to the list before returning.
No parameter.
def plot (   self,
  emis_grids,
  obs,
  quad = True,
  i_obs = None,
  alpha = 0.3,
  ax = None,
  error_band = True 
)
PLotting tool to generate Te-Ne diagrams.

Usage:
    diags.plot(emisgrids, obs, i_obs=3)
    
Parameters:
    - emis_grids    A dictionary of EmisGrid objects refereed by their atom strings (e.g. 'O3')
            This can for example be the output of pn.getEmisGridDict()
    - obs           A pn.Observation object that is supposed to contain the line intensities
            used for the plot (corrected intensities).
    - quad          If True (default) the sum of the error is quadratic,otherwise is linear.
    - i_obs         reference for the observation to be plotted, in case there is more than one
            in the obs object
    - alpha         Transparency for the error bands in the plot
    - error_band    Boolean: plot [default] an error band
def setAtoms (   self,
  atom_dic 
)
Define the dictionary containing the atoms used for the diagnostics.
A dictionary of atom instantiations refereed by atom strings, for example:
{'O3': pn.Atom('O', 3)}

Member Data Documentation

atomDict

The dictionary containing the atoms used for the diagnostics.

Diagnostics constructor

Parameters:
    - addAll        switch to include all defined diagnostics (default = False)
    - OmegaInterp   parameter sent to Atom, default is 'Cheb', other can be 'linear'
calling
diags

The dictionary containing the diagnostics.

log_
OmegaInterp