diff options
| -rw-r--r-- | dissertation.tex | 24 | ||||
| -rw-r--r-- | processing/chapter.tex | 152 | ||||
| -rw-r--r-- | todo.org | 21 | 
3 files changed, 102 insertions, 95 deletions
| diff --git a/dissertation.tex b/dissertation.tex index b2aa572..2a7a6d9 100644 --- a/dissertation.tex +++ b/dissertation.tex @@ -72,12 +72,12 @@ This dissertation is approved by the following members of the Final Oral Committ  \include{acquisition/chapter}
  \include{active_correction/chapter}
  \include{opa/chapter}
 -\include{mixed_domain/chapter}
 +%\include{mixed_domain/chapter}
  \part{Applications} \label{prt:applications}
 -\include{PbSe/chapter}
 -\include{MX2/chapter}
 -\include{PEDOT_PSS/chapter}
 +%\include{PbSe/chapter}
 +%\include{MX2/chapter}
 +%\include{PEDOT_PSS/chapter}
  % appendix -----------------------------------------------------------------------------------------
 @@ -85,15 +85,15 @@ This dissertation is approved by the following members of the Final Oral Committ  \part{Appendix} \label{prt:appendix}
  \begin{appendix}
 -\include{public/chapter}
 -\include{procedures/chapter}
 -\include{hardware/chapter}
 +%\include{public/chapter}
 +%\include{procedures/chapter}
 +%\include{hardware/chapter}
  % TODO: consider inserting WrightTools documentation as PDF
 -\include{irf/chapter}
 -\include{quantitative_ta/chapter}
 -\include{tg/chapter}
 -\include{errata/chapter}
 -\include{colophon/chapter}
 +%\include{irf/chapter}
 +%\include{quantitative_ta/chapter}
 +%\include{tg/chapter}
 +%\include{errata/chapter}
 +%\include{colophon/chapter}
  \end{appendix}
  % post --------------------------------------------------------------------------------------------
 diff --git a/processing/chapter.tex b/processing/chapter.tex index c1e46f4..2feec22 100644 --- a/processing/chapter.tex +++ b/processing/chapter.tex @@ -44,21 +44,24 @@ The biggest challenge is to find a really good definition for what constitutes a  Once understood, this common denominator can be enshrined into software and built upon.  %
  WrightTools is a software package written in Python, built using the excellent tools provided by
 -the scientific Python collection of packages, especially Scipy and Numpy. [CITE?]  %
 +the scientific Python collection of packages, especially Scipy \cite{SciPy} and Numpy
 +\cite{OliphantTravisE2006a}.  %
  WrightTools defines a universal file-format that is flexible enough to encompass the diversity of
  CMDS while still being entirely self-describing.  %
 -This file format is based on the popular binary format ``HDF5''. \cite{h5py}  %
 +This file format is based on the popular binary format ``HDF5'' \cite{FolkMike2011a}, as
 +interfaced by the h5py python library \cite{h5py}.  %
  This format allows for computers to interact with the arrays piece-by-piece in a very fast and
  reliable way, without loading the entire array in and out of memory.  %
 -WrightTools piggybacks on this, allowing users to interact with legitimately large CMDS datasets
 -without worrying about memory overflow.  %
 +Using object oriented programming, the main classes in WrightTools are children of h5py classes,
 +allowing users to interact with legitimately large CMDS datasets without worrying about memory
 +overflow.  %
  WrightTools takes a unique approach to representing CMDS data in array format, nick-named
  ``semi-structure'', that allows for greater flexibility in representing CMDS in different
  coordinate spaces.  %
  WrightTools is written to be used in scripts and in the command line.  %
  It does not have any graphical components built in, except for the ability to generate plots using
 -matplotlib. [CITE?]  %
 +matplotlib \cite{HunterJohnD2007a}.  %
  Being built in this way gives WrightTools users maximum flexibility, and allows for rapid
  collaborative development.  %
  It also allows other software packages to use WrightTools as a ``back-end'' foundational software,
 @@ -78,6 +81,8 @@ To use WrightTools, simply import:  I'll discuss more about how exactly WrightTools packaging, distribution, and instillation works in
  \autoref{pro:sec:distribution}.
 +% TODO: consider making the following into a table
 +
  We can use the builtin Python function \python{dir} to interrogate the contents of the
  WrightTools package.  %
  \begin{codefragment}{python}
 @@ -149,38 +154,38 @@ Typical variables might be \python{[w1, w2, w3, d1, d2]}, and typical channels  \begin{table}
    \begin{tabular}{c | c | l}
      & type & description \\ \hline
 -    \python{collapse} & method & Collapse along one dimension in a well-defined way. \\ \hline
 -    \python{convert} & method & Convert all axes of a certain kind. \\ \hline
 -    \python{create_channel} & method & Create a new channel. \\ \hline
 -    \python{create_variable} & method & Create a new variable. \\ \hline
 -    \python{fullpath} & attribute & \\ \hline
 -    \python{get_nadir} & & \\ \hline
 -    \python{get_zenith} & & \\ \hline
 -    \python{heal} & & \\ \hline
 -    \python{kind} & & \\ \hline
 -    \python{level} & & \\ \hline
 -    \python{map_variable} & & \\ \hline
 -    \python{natural_name} & & \\ \hline
 -    \python{ndim} & & \\ \hline
 -    \python{offset} & & \\ \hline
 -    \python{print_tree} & & \\ \hline
 -    \python{remove_channel} & & \\ \hline
 -    \python{remove_variable} & & \\ \hline
 -    \python{rename_channels} & & \\ \hline
 -    \python{shape} & & \\ \hline
 -    \python{share_nans} & & \\ \hline
 -    \python{size} & & \\ \hline
 -    \python{smooth} & & \\ \hline
 -    \python{source} & & \\ \hline
 -    \python{split} & & \\ \hline
 -    \python{transform} & & \\ \hline
 -    \python{units} & & \\ \hline
 -    \python{variable_names} & & \\ \hline
 -    \python{variables} & & \\ \hline
 -    \python{zoom} & & \\ \hline
 +    \texttt{collapse} & method & Collapse along one dimension in a well-defined way. \\ \hline
 +    \texttt{convert} & method & Convert all axes of a certain kind. \\ \hline
 +    \texttt{create\_channel} & method & Create a new channel. \\ \hline
 +    \texttt{create\_variable} & method & Create a new variable. \\ \hline
 +    \texttt{fullpath} & attribute & \\ \hline
 +    \texttt{get\_nadir} & method & Get the coordinates, in units, of the minimum of a channel. \\ \hline
 +    \texttt{get\_zenith} & method & Get the coordinates, in units, of the maximum of a channel \\ \hline
 +    \texttt{heal} & method & Remove nans from channel using interpolation. \\ \hline
 +    \texttt{kind} & attribute & \\ \hline
 +    \texttt{level} & method & Subtract the average value of npts at the edge of a given axis. \\ \hline
 +    \texttt{map\_variable} & method & Map points of a variable to new points using linear interpolation. \\ \hline
 +    \texttt{natural\_name} & attribute & \\ \hline
 +    \texttt{ndim} & attribute & \\ \hline
 +    \texttt{offset} & method & Offset one variable based on another variables' values. \\ \hline
 +    \texttt{print\_tree} & method & \\ \hline
 +    \texttt{remove\_channel} & method & \\ \hline
 +    \texttt{remove\_variable} & method & \\ \hline
 +    \texttt{rename\_channels} & method & \\ \hline
 +    \texttt{shape} & attribute & \\ \hline
 +    \texttt{share\_nans} & method & Share not-a-numbers between all channels. \\ \hline
 +    \texttt{size} & attribute & \\ \hline
 +    \texttt{smooth} & method & Smooth a channel using an n-dimensional Kaiser window. \\ \hline
 +    \texttt{source} & attribute & \\ \hline
 +    \texttt{split} & method & Split the data along a given axis, in units. \\ \hline
 +    \texttt{transform} & method & Transform the data. \\ \hline
 +    \texttt{units} & attribute & \\ \hline
 +    \texttt{variable\_names} & attribute & \\ \hline
 +    \texttt{variables} & attribute & \\ \hline
 +    \texttt{zoom} & method & Zoom the data using spline interpolation of the requested order. \\ \hline
    \end{tabular}
 -  \caption[Attributes and methods of Data]{
 -    Key attributes and methods of data, lexicographically listed
 +  \caption[Attributes and methods of Data.]{
 +    Key attributes and methods of data, lexicographically listed.
    }
  \end{table}
 @@ -195,31 +200,31 @@ discussed more in...  % TODO: where is it discussed more?  \begin{table}
    \begin{tabular}{c | c | c | l}
      & type & of & description \\ \hline
 -    \python{argmax} & method & both & \\ \hline
 -    \python{argmin} & & & \\ \hline
 -    \python{chunkwise} & & & \\ \hline
 -    \python{clip} & & & \\ \hline
 -    \python{convert} & & & \\ \hline
 -    \python{full} & & & \\ \hline
 -    \python{fullpath} & & & \\ \hline
 -    \python{label} & attribute & variable & \\ \hline
 -    \python{log} & & & \\ \hline
 -    \python{log10} & & & \\ \hline
 -    \python{log2} & & & \\ \hline
 -    \python{mag} & & & \\ \hline
 -    \python{major_extent} & attribute & channel & \\ \hline
 -    \python{max} & & & \\ \hline
 -    \python{min} & & & \\ \hline
 -    \python{minor_extent} & attribute & channel & \\ \hline
 -    \python{natural_name} & & & \\ \hline
 -    \python{normalize} & & channel & \\ \hline
 -    \python{null} & & channel & \\ \hline
 -    \python{parent} & & & \\ \hline
 -    \python{points} & & & \\ \hline
 -    \python{signed} & & channel & \\ \hline
 -    \python{slices} & & & \\ \hline
 -    \python{symmetric_root}
 -    \python{trim} & & channel & \\ \hline
 +    \texttt{argmax} & method & both & Index of maximum, ignoring nans. \\ \hline
 +    \texttt{argmin} & method & both & Index of minimum, ignoring nans. \\ \hline
 +    \texttt{chunkwise} & method & both & Execute a function for each chunk in the dataset. \\ \hline
 +    \texttt{clip} & method & both & Clip values outside of a desired range. \\ \hline
 +    \texttt{convert} & method & both & Convert units, writing to disk. \\ \hline
 +    \texttt{full} & attribute & both & \\ \hline
 +    \texttt{fullpath} & attribute & both & \\ \hline
 +    \texttt{label} & attribute & variable & \\ \hline
 +    \texttt{log} & method & both & Take the log of the entire dataset, with choice of base. \\ \hline
 +    \texttt{log10} & method & both & Take the base 10 log of the entire dataset. \\ \hline
 +    \texttt{log2} & method & both & Take the base 2 log of the entire dataset. \\ \hline
 +    \texttt{mag} & method & channel & \\ \hline
 +    \texttt{major\_extent} & attribute & channel & \\ \hline
 +    \texttt{max} & method & both & Maximum, ignoring nans. \\ \hline
 +    \texttt{min} & method & both & Minimum, ignoring nans. \\ \hline
 +    \texttt{minor\_extent} & attribute & channel & \\ \hline
 +    \texttt{natural\_name} & attribute & both & \\ \hline
 +    \texttt{normalize} & method & channel & \\ \hline
 +    \texttt{null} & attribute & channel & \\ \hline
 +    \texttt{parent} & attribute & both & \\ \hline
 +    \texttt{points} & attribute & both & \\ \hline
 +    \texttt{signed} & attribute & channel & \\ \hline
 +    \texttt{slices} & method & both & Returns a generator yielding tuple of slice objects. \\ \hline
 +    \texttt{symmetric\_root} & method & both & \\ \hline
 +    \texttt{trim} & method & channel & \\ \hline
    \end{tabular}
    \caption[Attributes and methods of Channel and Variable.]{
      Key attributes and methods of channel and variable, lexicographically listed
 @@ -240,22 +245,21 @@ Axes can be directly indexed / sliced into using \python{__getitem__}, and they  ``numpy-like'' attributes.  %
  A lexicographical list of axis attributes and methods follows.
 -
  \begin{table}
    \begin{tabular}{c | c | l}
      & type & description \\ \hline
 -    \python{full} & & \\ \hline
 -    \python{label} & & \\ \hline
 -    \python{natural_name} & & \\ \hline
 -    \python{ndim} & & \\ \hline
 -    \python{points} & & \\ \hline
 -    \python{shape} & & \\ \hline
 -    \python{size} & & \\ \hline
 -    \python{units_kind} & & \\ \hline
 -    \python{variables} & & \\ \hline
 -    \python{convert} & & \\ \hline
 -    \python{min} & & \\ \hline
 -    \python{max} & & \\ \hline
 +    \texttt{full} & & \\ \hline
 +    \texttt{label} & & \\ \hline
 +    \texttt{natural\_name} & & \\ \hline
 +    \texttt{ndim} & & \\ \hline
 +    \texttt{points} & & \\ \hline
 +    \texttt{shape} & & \\ \hline
 +    \texttt{size} & & \\ \hline
 +    \texttt{units\_kind} & & \\ \hline
 +    \texttt{variables} & & \\ \hline
 +    \texttt{convert} & & \\ \hline
 +    \texttt{min} & & \\ \hline
 +    \texttt{max} & & \\ \hline
    \end{tabular}
    \caption[Attributes and methods of Axis.]{
      Key attributes and methods of axis, lexicographically listed
 @@ -8,26 +8,29 @@    CLOSED: [2018-04-07 Sat 16:47]  * DONE citations                                               :introduction:    CLOSED: [2018-04-07 Sat 18:19] -* TODO finish intro to oop content                                 :software: -* TODO incorporate "most software is not peer reviewed"            :software: +* DONE finish intro to oop content                                 :software: +  CLOSED: [2018-04-07 Sat 23:19] +* DONE incorporate "most software is not peer reviewed"            :software: +  CLOSED: [2018-04-07 Sat 23:19]  ** see Joppa reference 6 -* TODO incorporate idea "most people over-trust software"          :software: -* TODO incorporate all references                                  :software: -* TODO incorporate StoddenVictoria2016a                            :software: +* DONE incorporate all references                                  :software: +  CLOSED: [2018-04-07 Sat 23:19]  * TODO more references for object oriented programming             :software: +* TODO tables                                                    :processing: +* TODO distribution section                                      :processing: +* TODO development history from github                           :processing: +* TODO development section                                       :processing:  * TODO describe spectroscopic instrument                       :spectroscopy:  * TODO "quadrants of complexity" idea                           :acquisition:  ** TODO figure  ** TODO arguments -* TODO tables                                                    :processing: -* TODO distribution section                                      :processing: -* TODO development section                                       :processing: -* TODO development history from github                           :processing:  * TODO insert content                                                  :PbSe:  * TODO summarize PbSe chapter                                  :introduction:  * TODO summarize MX2 chapter                                   :introduction:  * TODO summarize PEDOT:PSS chapter                             :introduction:  * TODO insert content from SI                                  :mixed_domain: +* IDEA incorporate StoddenVictoria2016a                            :software: +* IDEA incorporate idea "most people over-trust software"          :software:  * IDEA 2D delay example from ps system                               :active:  * IDEA consider refactoring or expanding OOP section               :software:  * IDEA see Paul's dissertation re: loss of resonance advantage with very fast pulses :spectroscopy: | 
