[yt-svn] commit/yt-doc: 6 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Fri Aug 16 10:05:59 PDT 2013


6 new commits in yt-doc:

https://bitbucket.org/yt_analysis/yt-doc/commits/75dd50fc7ffb/
Changeset:   75dd50fc7ffb
User:        hegan
Date:        2013-08-08 02:57:24
Summary:     Added absorption spectrum fitting documentation
Affected #:  1 file

diff -r a8809ea3f352fac38c45d135d3e71c7f14bd783f -r 75dd50fc7ffb08dc76ee6c8a4e157c4d589984ae source/analysis_modules/absorption_spectrum.rst
--- a/source/analysis_modules/absorption_spectrum.rst
+++ b/source/analysis_modules/absorption_spectrum.rst
@@ -96,4 +96,9 @@
 The file format used is based on the extension provided in the **output_file** keyword: '.fits' 
 for a fits file, '.h5' for an hdf5 file, and anything else for an ascii file.
 
-.. note:: To write out a fits file, you must install the `pyfits <http://www.stsci.edu/resources/software_hardware/pyfits>`_ module.
\ No newline at end of file
+.. note:: To write out a fits file, you must install the `pyfits <http://www.stsci.edu/resources/software_hardware/pyfits>`_ module.
+
+What can I do with this?
+------------------------
+
+Try :ref:`quick_start_fitting`


https://bitbucket.org/yt_analysis/yt-doc/commits/21a80ffdd4e1/
Changeset:   21a80ffdd4e1
User:        hegan
Date:        2013-08-08 02:57:58
Summary:     Added absorption spectrum fitting documentation, with added files
Affected #:  3 files

diff -r 75dd50fc7ffb08dc76ee6c8a4e157c4d589984ae -r 21a80ffdd4e1a246f03734adf291a9b189bbcd7c source/analysis_modules/fitting_procedure.rst
--- /dev/null
+++ b/source/analysis_modules/fitting_procedure.rst
@@ -0,0 +1,138 @@
+.. _fitting_procedure:
+
+Procedure for Generating Fits
+=============================
+.. sectionauthor:: Hilary Egan <hilary.egan at colorado.edu>
+
+To generate a fit for a spectrum :py:func:`generate_total_fit()` is called.
+This function controls the identification of line complexes, the fit
+of a series of absorption lines for each appropriate species, checks of
+those fits, and returns the results of the fits.
+
+
+Finding Line Complexes
+----------------------
+Line complexes are found using the :py:func:`find_complexes` function. The
+process by which line complexes are found involves walking through
+the array of flux in order from minimum to maximum wavelength, and finding
+series of spatially contiguous cells whose flux is less than some limit.
+These regions are then checked in terms of an additional flux limit and size.
+The bounds of all the passing regions are then listed and returned. Those
+bounds that cover an exceptionally large region of wavelength space will be
+broken up if a suitable cut point is found. This method is only appropriate
+for noiseless spectra.
+
+The optional parameter **complexLim** (default = 0.999), controls the limit
+that triggers the identification of a spatially contiguous region of flux
+that could be a line complex. This number should be very close to 1 but not
+exactly equal. It should also be at least an order of magnitude closer to 1
+than the later discussed **fitLim** parameter, because a line complex where
+the flux of the trough is very close to the flux of the edge can be incredibly
+unstable when optimizing.
+
+The **fitLim** parameter controls what is the maximum flux that the trough
+of the region can have and still be considered a line complex. This 
+effectively controls the sensitivity to very low column absorbers. Default
+value is **fitLim** = 0.99. If a region is identified where the flux of the trough
+is greater than this value, the region is simply ignored.
+
+The **minLength** parameter controls the minimum number of array elements 
+that an identified region must have. This value must be greater than or
+equal to 3 as there are a minimum of 3 free parameters that must be fit.
+Default is **minLength** = 3.
+
+The **maxLength** parameter controls the maximum number of array elements
+that an identified region can have before it is split into separate regions.
+Default is **maxLength** = 1000. This should be adjusted based on the 
+resolution of the spectrum to remain appropriate. The value correspond
+to a wavelength of roughly 50 angstroms. 
+
+The **splitLim** parameter controls how exceptionally large regions are split.
+When such a region is identified by having more array elements than
+**maxLength**, the point of maximum flux (or minimum absorption) in the 
+middle two quartiles is identified. If that point has a flux greater than
+or equal to **splitLim**, then two separate complexes are created: one from
+the lower wavelength edge to the minimum absorption point and the other from
+the minimum absorption point to the higher wavelength edge. The default
+value is **splitLim** =.99, but it should not drastically affect results, so
+long as the value is reasonably close to 1.
+
+
+Fitting a Line Complex
+----------------------
+
+After a complex is identified, it is fitted by iteratively adding and 
+optimizing a set of Voigt Profiles for a particular species until the
+region is considered successfully fit. The optimizing is accomplished
+using scipy's least squares optimizer. This requires an initial estimate
+of the parameters to be fit (column density, b-value, redshift) for each
+line.
+
+Each time a line is added, the guess of the parameters is based on
+the difference between the line complex and the fit so far. For the first line
+this just means the initial guess is based solely on the flux of the line
+complex. The column density is given by the initial column density given
+in the species parameters dictionary. If the line is saturated (some portion
+of the flux with a value less than .1) than the larger initial column density
+guess is chosen. If the flux is relatively high (all values >.9) than the
+smaller initial guess is given. These values are chosen to make optimization
+faster and more stable by being closer to the actual value, but the final
+results of fitting should not depend on them as they merely provide a
+starting point. 
+
+After the parameters for a line are optimized for the first time, the 
+optimized parameters are then used for the initial guess on subsequent 
+iterations with more lines. 
+
+The complex is considered successfully fit when the sum of the squares of 
+the difference between the flux generated from the fit and the desired flux
+profile is less than **errBound**. **errBound** is related to the optional
+parameter to :py:func:`generate_total_fit()`, **maxAvgError** by the number
+of array elements in the region such that **errBound** = number of elements *
+**maxAvgError**.
+
+There are several other conditions under which the cycle of adding and 
+optimizing lines will halt. If the error of the optimized fit from adding
+a line is an order of magnitude worse than the error of the fit without
+that line, then it is assumed that the fitting has become unstable and 
+the latest line is removed. Lines are also prevented from being added if
+the total number of lines is greater than the number of elements in the flux
+array being fit divided by 3. This is because there must not be more free
+parameters in a fit than the number of points to constrain them. 
+
+
+Checking Fit Results
+--------------------
+
+After an acceptable fit for a region is determined, there are several steps
+the algorithm must go through to validate the fits. 
+
+First, the parameters must be in a reasonable range. This is a check to make 
+sure that the optimization did not become unstable and generate a fit that
+diverges wildly outside the region where the fit was performed. This way, even
+if particular complex cannot be fit, the rest of the spectrum fitting still
+behaves as expected. The range of acceptability for each parameter is given
+in the species parameter dictionary. These are merely broad limits that will
+prevent numerical instability rather than physical limits.
+
+In cases where a single species generates multiple lines (as in the OVI 
+doublet), the fits are then checked for higher wavelength lines. Originally
+the fits are generated only considering the lowest wavelength fit to a region.
+This is because we perform the fitting of complexes in order from the lowest
+wavelength to the highest, so any contribution to a complex being fit must
+come from the lower wavelength as the higher wavelength contributions would
+already have been subtracted out after fitting the lower wavelength. 
+
+Saturated Lyman Alpha Fitting Tools
+-----------------------------------
+
+In cases where a large or saturated line (there exists a point in the complex
+where the flux is less than .1) fails to be fit properly at first pass, a
+more robust set of fitting tools is used to try and remedy the situation.
+The basic approach is to simply try a much wider range of initial parameter
+guesses in order to find the true optimization minimum, rather than getting
+stuck in a local minimum. A set of hard coded initial parameter guesses
+for Lyman alpha lines is given by the function :py:func:`get_test_lines`. 
+Also included in these parameter guesses is an an initial guess of a high
+column cool line overlapping a lower column warm line, indictive of a 
+broad Lyman alpha (BLA) absorber.

diff -r 75dd50fc7ffb08dc76ee6c8a4e157c4d589984ae -r 21a80ffdd4e1a246f03734adf291a9b189bbcd7c source/analysis_modules/quick_start_fitting.rst
--- /dev/null
+++ b/source/analysis_modules/quick_start_fitting.rst
@@ -0,0 +1,119 @@
+.. _quick_start_fitting:
+Fitting an Absorption Spectrum
+==============================
+.. sectionauthor:: Hilary Egan <hilary.egan at colorado.edu>
+
+
+Loading an Absorption Spectrum
+------------------------------
+
+To load an absorption spectrum created by (:ref: `AbsorptionSpectrum`), 
+we specify the output file name. It is advisable to use either an .h5
+or .fits file, rather than an ascii file to save the spectrum as rounding
+errors produced in saving to a ascii file will negatively impact fit quality.
+
+.. code-block:: python
+
+    f = h5py.File('spectrum.h5')
+    wavelength = f["wavelength"][:]
+    flux = f['flux'][:]
+    f.close()
+
+Specifying Species Properties
+-----------------------------
+
+Before fitting a spectrum, you must specify the properties of all the 
+species included when generating the spectrum.
+
+The physical properties needed for each species are the rest wavelength,
+f-value, gamma value, and atomic mass. These will be the same values
+as used to generate the initial absorption spectrum. These values are
+given in list form as some species generate multiple lines (as in the
+OVI doublet). The number of lines is also specified on its own.
+
+To fine tune the fitting procedure and give results in a minimal
+number of optimizing steps, we specify expected maximum and minimum
+values for the column density, doppler parameter, and redshift. These 
+values can be well outside the range of expected values for a typical line
+and are mostly to prevent the algorithm from fitting to negative values
+or becoming numerically unstable.
+
+Common initial guesses for doppler parameter and column density should also
+be given. These values will not affect the specific values generated by
+the fitting algorithm, provided they are in a reasonably appropriate range
+(ie: within the range given by the max and min values for the parameter).
+
+For a spectrum containing both the H Lyman-alpha line and the OVI doublet,
+we set up a fit as shown below.
+
+.. code-block:: python
+
+    HI_parameters = {'name':'HI',
+            'f': [.4164],
+            'Gamma':[6.265E8],
+            'wavelength':[1215.67],
+            'numLines':1,
+            'maxN': 1E22, 'minN':1E11,
+            'maxb': 300, 'minb':1,
+            'maxz': 6, 'minz':0,
+            'init_b':30,
+            'init_N':1E14}
+
+    OVI_parameters = {'name':'OVI',
+            'f':[.1325,.06580],
+            'Gamma':[4.148E8,4.076E8],
+            'wavelength':[1031.9261,1037.6167],
+            'numLines':2,
+            'maxN':1E17,'minN':1E11,
+            'maxb':300, 'minb':1,
+            'maxz':6, 'minz':0,
+            'init_b':20,
+            'init_N':1E12}
+
+    speciesDicts = {'HI':HI_parameters,'OVI':OVI_parameters}
+
+
+Generating Fit of Spectrum
+--------------------------
+
+After loading a spectrum and specifying the properties of the species
+used to generate the spectrum, an apporpriate fit can be generated. 
+
+.. code-block:: python
+
+    orderFits = ['OVI','HI']
+
+    fitted_lines, fitted_flux = generate_total_fit(wavelength,
+        flux, orderFits, speciesDicts)
+
+The orderFits variable is used to determine in what order the species
+should be fitted. This may affect the results of the resulting fit,
+as lines may be fit as an incorrect species. For best results, it is
+recommended to fit species the generate multiple lines first, as a fit
+will only be accepted if all of the lines are fit appropriately using
+a single set of parameters. At the moment no cross correlation between
+lines of different species is performed. 
+
+The parameters of the lines that are needed to fit the spectrum are contained 
+in the **fitted_lines** variable. Each species given in **orderFits** will
+be a key in the **fitted_lines** dictionary. The entry for each species 
+key will be another dictionary containing entries for 'N','b','z', and 
+'group#' which are the column density, doppler parameter, redshift,
+and associate line complex respectively. The i :superscript:`th` line 
+of a given species is then given by the parameters **N[i]**, **b[i]**, 
+and **z[i]** and is part of the same complex (and was fitted at the same time)
+as all lines with the same group number as **group#[i]**.
+
+The **fitted_flux** is an ndarray of the same size as **flux** and 
+**wavelength** that contains the cummulative absorption spectrum generated 
+by the lines contained in **fitted_lines**.
+
+Saving a Spectrum Fit
+---------------------
+
+Saving the results of a fitted spectrum for further analysis is
+accomplished automatically using the h5 file format. A group
+is made for each species that is fit, and each species group has
+a group for the corresponding N, b, z, and group# values.
+
+

diff -r 75dd50fc7ffb08dc76ee6c8a4e157c4d589984ae -r 21a80ffdd4e1a246f03734adf291a9b189bbcd7c source/cookbook/fit_spectrum.py
--- /dev/null
+++ b/source/cookbook/fit_spectrum.py
@@ -0,0 +1,116 @@
+import os
+import sys
+
+import matplotlib.pyplot as plt
+import h5py
+
+from yt.mods import *
+
+from yt.analysis_modules.cosmological_observation.light_ray.api import \
+     LightRay
+from yt.analysis_modules.api import AbsorptionSpectrum
+from yt.analysis_modules.absorption_spectrum.api import \
+        generate_total_fit
+
+# Define and add a field to simulate OVI based on
+# a constant relationship to HI
+
+def _OVI_NumberDensity(field,data):
+    return data['HI_NumberDensity']
+def _convertOVI(data):
+    return 4.9E-4*.2
+
+add_field('my_OVI_NumberDensity',
+        function=_OVI_NumberDensity,
+        convert_function=_convertOVI)
+
+
+# Define species andi associated parameters to add to continuum
+# Parameters used for both adding the transition to the spectrum
+# and for fitting
+# Note that for single species that produce multiple lines
+# (as in the OVI doublet), 'numLines' will be equal to the number
+# of lines, and f,gamma, and wavelength will have multiple values.
+
+HI_parameters = {'name':'HI',
+        'field' : 'HI_NumberDensity',
+        'f': [.4164],
+        'Gamma':[6.265E8],
+        'wavelength':[1215.67],
+        'mass': 1.00794,
+        'numLines':1,
+        'maxN': 1E22, 'minN':1E11,
+        'maxb': 300, 'minb':1,
+        'maxz': 6, 'minz':0,
+        'init_b':30,
+        'init_N':1E14}
+
+OVI_parameters = {'name':'OVI',
+        'field' : 'my_OVI_NumberDensity',
+        'f':[.1325,.06580],
+        'Gamma':[4.148E8,4.076E8],
+        'wavelength':[1031.9261,1037.6167],
+        'mass': 15.9994,
+        'numLines':2,
+        'maxN':1E17,'minN':1E11,
+        'maxb':300, 'minb':1,
+        'maxz':6, 'minz':0,
+        'init_b':20,
+        'init_N':1E12}
+
+species_dicts = {'HI':HI_parameters,'OVI':OVI_parameters}
+
+# Create a LightRay object extending from z = 0 to z = 0.1
+# and use only the redshift dumps.
+lr = LightRay('128_3_20MPC/gas_plus_dm_amr_multiphys.enzo',
+              'Enzo', 0.0, 0.1,
+              use_minimum_datasets=True,
+              time_data=False
+            )
+
+# Get all fields that need to be added to the light ray
+fields = ['Temperature']
+for s, params in species_dicts.iteritems():
+    fields.append(params['field'])
+
+# Make a light ray, and set njobs to -1 to use one core
+# per dataset.
+lr.make_light_ray(seed=123456780,
+                  solution_filename='lightraysolution.txt',
+                  data_filename='lightray.h5',
+                  fields=fields,
+                  get_nearest_halo=False,
+                  get_los_velocity=True,
+                  njobs=-1)
+
+# Create an AbsorptionSpectrum object extending from 
+# lambda = 900 to lambda = 1800, with 10000 pixels
+sp = AbsorptionSpectrum(900.0, 1400.0, 10000)
+
+# Iterate over species
+for s,params in species_dicts.iteritems():
+
+    #Iterate over transitions for a single species
+    for i in range(params['numLines']):
+
+        #Add the lines to the spectrum
+        sp.add_line(s, params['field'], 
+                params['wavelength'][i], params['f'][i],
+                params['Gamma'][i], params['mass'], 
+                label_threshold=1.e10)
+
+
+# Make and save spectrum
+wavelength, flux = sp.make_spectrum('lightray.h5', 
+        output_file='spectrum.h5',
+        line_list_file='lines.txt',
+        use_peculiar_velocity=True)
+
+
+#Define order to fit species in
+order_fits = ['OVI','HI']
+
+# Fit spectrum and save fit
+fitted_lines, fitted_flux = generate_total_fit(wavelength,
+            flux, order_fits, species_dicts, 
+            output_file='spectrum_fit.h5')


https://bitbucket.org/yt_analysis/yt-doc/commits/bc1e7dd39441/
Changeset:   bc1e7dd39441
User:        hegan
Date:        2013-08-08 18:52:17
Summary:     Added references to new files
Affected #:  2 files

diff -r 21a80ffdd4e1a246f03734adf291a9b189bbcd7c -r bc1e7dd394419c7b1bcd2849b132468d9b421327 source/analysis_modules/index.rst
--- a/source/analysis_modules/index.rst
+++ b/source/analysis_modules/index.rst
@@ -24,3 +24,5 @@
    sunrise_export
    ellipsoid_analysis
    xray_emission_fields
+   fitting_procedure
+   quick_start_fitting

diff -r 21a80ffdd4e1a246f03734adf291a9b189bbcd7c -r bc1e7dd394419c7b1bcd2849b132468d9b421327 source/cookbook/cosmological_analysis.rst
--- a/source/cookbook/cosmological_analysis.rst
+++ b/source/cookbook/cosmological_analysis.rst
@@ -79,3 +79,11 @@
 line of sight.
 
 .. yt_cookbook:: make_light_ray.py 
+
+Creating and Fitting Absorption Spectra
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+This script demonstrates how to use light rays to create corresponding
+absorption spectra and then fit the spectra to find absorbing
+structures.
+
+.. yt_cookbook:: fit_spectrum.py


https://bitbucket.org/yt_analysis/yt-doc/commits/ea79c2178169/
Changeset:   ea79c2178169
User:        hegan
Date:        2013-08-13 17:47:42
Summary:     Updated to reflect dataset available on yt hub
Affected #:  1 file

diff -r bc1e7dd394419c7b1bcd2849b132468d9b421327 -r ea79c21781698a05b154a8b9f67b3c62c0910141 source/cookbook/fit_spectrum.py
--- a/source/cookbook/fit_spectrum.py
+++ b/source/cookbook/fit_spectrum.py
@@ -1,11 +1,8 @@
 import os
 import sys
-
-import matplotlib.pyplot as plt
 import h5py
 
 from yt.mods import *
-
 from yt.analysis_modules.cosmological_observation.light_ray.api import \
      LightRay
 from yt.analysis_modules.api import AbsorptionSpectrum
@@ -62,7 +59,7 @@
 
 # Create a LightRay object extending from z = 0 to z = 0.1
 # and use only the redshift dumps.
-lr = LightRay('128_3_20MPC/gas_plus_dm_amr_multiphys.enzo',
+lr = LightRay('enzo_tiny_cosmology/AMRCosmology.enzo',
               'Enzo', 0.0, 0.1,
               use_minimum_datasets=True,
               time_data=False
@@ -85,7 +82,7 @@
 
 # Create an AbsorptionSpectrum object extending from 
 # lambda = 900 to lambda = 1800, with 10000 pixels
-sp = AbsorptionSpectrum(900.0, 1400.0, 10000)
+sp = AbsorptionSpectrum(900.0, 1400.0, 50000)
 
 # Iterate over species
 for s,params in species_dicts.iteritems():


https://bitbucket.org/yt_analysis/yt-doc/commits/12ac0c0691d3/
Changeset:   12ac0c0691d3
User:        hegan
Date:        2013-08-14 23:25:54
Summary:     Added generate_total_fit to API docs, updated path in cookbook recipe, and linked to paper
Affected #:  3 files

diff -r ea79c21781698a05b154a8b9f67b3c62c0910141 -r 12ac0c0691d3c2e656cdab97aaebcfa2ebbab0d3 source/analysis_modules/quick_start_fitting.rst
--- a/source/analysis_modules/quick_start_fitting.rst
+++ b/source/analysis_modules/quick_start_fitting.rst
@@ -2,6 +2,11 @@
 Fitting an Absorption Spectrum
 ==============================
 .. sectionauthor:: Hilary Egan <hilary.egan at colorado.edu>
+This tool can be used to fit absorption spectra, particularly those
+generated using the (:ref: `AbsorptionSpectrum`) tool. For more details
+on its uses and implementation please see (`Egan et al. (2013)
+<http://arxiv.org/abs/1307.2244>`_). If you find this tool useful we 
+encourage you to cite accordingly.
 
 
 Loading an Absorption Spectrum

diff -r ea79c21781698a05b154a8b9f67b3c62c0910141 -r 12ac0c0691d3c2e656cdab97aaebcfa2ebbab0d3 source/api/api.rst
--- a/source/api/api.rst
+++ b/source/api/api.rst
@@ -319,6 +319,12 @@
    ~yt.analysis_modules.spectral_integrator.spectral_frequency_integrator.add_xray_luminosity_field
    ~yt.analysis_modules.spectral_integrator.spectral_frequency_integrator.add_xray_photon_emissivity_field
 
+Absorption spectra fitting:
+
+.. autosummary::
+    :toctree: generated/
+    ~yt.analysis_modules.absorption_spectrum.absorption_spectrum.absorption_spectrum_fit.generate_total_fit
+
 Sunrise exporting:
 
 .. autosummary::

diff -r ea79c21781698a05b154a8b9f67b3c62c0910141 -r 12ac0c0691d3c2e656cdab97aaebcfa2ebbab0d3 source/cookbook/fit_spectrum.py
--- a/source/cookbook/fit_spectrum.py
+++ b/source/cookbook/fit_spectrum.py
@@ -59,7 +59,7 @@
 
 # Create a LightRay object extending from z = 0 to z = 0.1
 # and use only the redshift dumps.
-lr = LightRay('enzo_tiny_cosmology/AMRCosmology.enzo',
+lr = LightRay('enzo_cosmology_plus/AMRCosmology.enzo',
               'Enzo', 0.0, 0.1,
               use_minimum_datasets=True,
               time_data=False


https://bitbucket.org/yt_analysis/yt-doc/commits/1b85abd12f57/
Changeset:   1b85abd12f57
User:        hegan
Date:        2013-08-16 19:02:33
Summary:     Fixed ref vs ticks and moved index listing of sections (I think thats what you were saying to do, britton?)
Affected #:  2 files

diff -r 12ac0c0691d3c2e656cdab97aaebcfa2ebbab0d3 -r 1b85abd12f57dc86ac1056425d8e23e53ed5efb2 source/analysis_modules/index.rst
--- a/source/analysis_modules/index.rst
+++ b/source/analysis_modules/index.rst
@@ -14,6 +14,8 @@
    light_ray_generator
    planning_cosmology_simulations
    absorption_spectrum
+   quick_start_fitting
+   fitting_procedure
    star_analysis
    simulated_observations
    halo_mass_function
@@ -24,5 +26,3 @@
    sunrise_export
    ellipsoid_analysis
    xray_emission_fields
-   fitting_procedure
-   quick_start_fitting

diff -r 12ac0c0691d3c2e656cdab97aaebcfa2ebbab0d3 -r 1b85abd12f57dc86ac1056425d8e23e53ed5efb2 source/analysis_modules/quick_start_fitting.rst
--- a/source/analysis_modules/quick_start_fitting.rst
+++ b/source/analysis_modules/quick_start_fitting.rst
@@ -1,9 +1,10 @@
 .. _quick_start_fitting:
+
 Fitting an Absorption Spectrum
 ==============================
 .. sectionauthor:: Hilary Egan <hilary.egan at colorado.edu>
 This tool can be used to fit absorption spectra, particularly those
-generated using the (:ref: `AbsorptionSpectrum`) tool. For more details
+generated using the (``AbsorptionSpectrum``) tool. For more details
 on its uses and implementation please see (`Egan et al. (2013)
 <http://arxiv.org/abs/1307.2244>`_). If you find this tool useful we 
 encourage you to cite accordingly.
@@ -12,7 +13,7 @@
 Loading an Absorption Spectrum
 ------------------------------
 
-To load an absorption spectrum created by (:ref: `AbsorptionSpectrum`), 
+To load an absorption spectrum created by (``AbsorptionSpectrum``), 
 we specify the output file name. It is advisable to use either an .h5
 or .fits file, rather than an ascii file to save the spectrum as rounding
 errors produced in saving to a ascii file will negatively impact fit quality.

Repository URL: https://bitbucket.org/yt_analysis/yt-doc/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the yt-svn mailing list