schiffoutput(5)
NAME
schiffoutput  format of schiff(1) results.DESCRIPTION
The output result of the schiff(1) program is a collection of ASCII floating point data. Each set of floating point values are separated by an empty line. The first set is a list of per wavelength crosssections. Each line stores the estimated crosssection for a wavelength submitted by the w option of schiff(1). It is formatted as "W E e A a S s P p" with "W" the wavelength in vacuum (expressed in microns), "E", "A" and "S" the estimation of the extinction, absorption and scattering crosssections, respectively, in square microns per particle, and "P" the estimated average projected area of the soft particles expressed in square microns per particle. The "e", "a", "s" and "p" values are the standard error of the aforementioned estimations.Following the list of crosssections comes the list of phase function descriptors. Each descriptor is a line that gives informations on the [[inverse] cumulative] phase functions. It is formatted as "W thetal Ws WsSE Wc WcSE n nangles nanglesinv" with "W" the wavelength in vacuum (expressed in microns) of the inverse cumulative phase function, "thetal" the scattering angle in radians from which the phase function was analytically computed, "Ws" and "Wc" the values of the differential crosssection and its cumulative at "thetal", "n" the parameter of the model used to analytically evaluate the phase function for large scattering angles (i.e. angles greater than "thetal"), "nangles" the number of scattering angles (a option of schiff(1)) and "nanglesinv" the number of inverse cumulative phase function values (A option of schiff(1)). The "WsSE" and "WcSE" values are the standard error of the "Ws" and "Wc" estimations, respectively.
Then there is the list of phase functions, each stored as a list of lines formatted as "A E SE" where "E" is the expected value of the phase function for the input scattering angle "A" in radians, and "SE" its standard error. The number of scattering angles is controlled by the a option of schiff(1).
After the phase functions come the cumulative phase functions that follow the format of the phase functions, i.e. each cumulative phase function is a list a lines  one per scattering angle  that defines the input scattering angle in radians, followed by the expected value and the standard error of its cumulative phase function.
Finally, there is the inverse cumulative phase functions. Each of these functions lists a set of N probabilities in [0, 1] and its corresponding scattering angles in [0, PI]. The number of entries of the inverse cumulative phase functions is controlled by the A option of schiff(1). Assuming a set of N angles, the i^th angle (i in [0, N1]) is the angle whose probability is i/(N1).
Note that the cross sections, the phase function descriptors, the phase functions, their cumulative and their inverse cumulative are all sorted in ascending order with respect to their associated wavelength.
GRAMMAR
The following grammar formally describes the schiff(1) output format. The output values are ASCII data formatted line by line. By convention, in the following grammar the line data are listed between quote marks. The grammar may use new lines for formatting constraints, but data are actually on the same line while a closed quote mark is not defined.

<schiffoutput> ::= <crosssections> EMPTYLINE <phasefunctiondescriptor> EMPTYLINE <phasefunctions> EMPTYLINE <cumulativephasefunctions> EMPTYLINE <inversecumulativephasefunctions> EMPTYLINE  <crosssections> ::= "WAVELENGTH <extinction> <absorption> <scattering> <area>" [ <crosssections> ] <extinction> ::= ESTIMATION STANDARDERROR <absorption> ::= ESTIMATION STANDARDERROR <scattering> ::= ESTIMATION STANDARDERROR <area> ::= ESTIMATION STANDARDERROR  <phasefunctionsdescriptors> ::= "WAVELENGTH THETA <PF(THETA)> <CDF(THETA)> N #ANGLES #INVCUM" [ <phasefunctionsdescriptors> ] <CDF(THETA)> ::= ESTIMATION STANDARDERROR <PF(THETA)> ::= ESTIMATION STANDARDERROR  <phasefunctions> ::= <functionentries> [ EMPTYLINE <phasefunctions> ] <cumulativephasefunctions> ::= <functionentries> [ EMPTYLINE <cumulativephasefunctions> ] <functionentries> ::= ANGLE ESTIMATION STANDARDERROR [ <phasefunctionentries> ] <inversecumulativephasefunctions> ::= <inversefunctionentries> [ EMPTYLINE <inversecumulativephasefunctions> ] <inversefunctionentries> ::= PROBABILITY ANGLE [ <inversefunctionentries> ]
EXAMPLE
The following output is emitted by the schiff(1) program invoked on the wavelengths 0.3 and 0.6 micron. Note that actually, schiff(1) does not write comments, i.e. text preceeded by the "#" character. However comments are added in order to help in understanding the data layout.
0.3 10.61 0.20 9.51e3 2.37e4 10.6 0.20 5.25 0.10 # Xsections 0.6 11.15 0.25 4.76e3 1.19e4 11.1 0.25 5.25 0.10 # Xsections 0.3 0.18 1.37 17.6 7.74 0.73 0.80 1000 2000 # descriptor 0.6 0.26 9.81 5.26 7.65 0.48 2.90 1000 2000 # descriptor 0 520.23 64.2971 # Phase function (0.3 micron) 0.00314474 474.315 50.6471 ... 3.13845 0.0196258 0 3.14159 0.0196259 0 0 150.183 25.4822 # Phase function (0.6 micron) 0.00314474 145.969 23.7955 ... 3.13845 0.00262338 0 3.14159 0.00262338 0 0 0 0 # Cumulative (0.3 micron) 0.00314474 0.0154297 0.00177366 ... 3.13845 0.999999 0 3.14159 1 0 0 0 0 # Cumulative (0.6 micron) 0.00314474 0.00460001 0.000765182 ... 3.13845 1 0 3.14159 1 0 0 0 # Inverse cumulative (0.3 micron) 0.00050025 0.000101956 ... 0.9995 3.05143 1 3.14159 0 0 # Inverse cumulative (0.6 micron) 0.00050025 0.00034199 ... 0.9995 2.89409 1 3.14159
SEE ALSO
schiff(1)