aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaise Thompson <blaise@untzag.com>2018-04-15 18:02:35 -0500
committerBlaise Thompson <blaise@untzag.com>2018-04-15 18:02:35 -0500
commit14bc9be2a66cba11f88c87a3aebc93d142b19743 (patch)
treee3274c9cb3a7d9879cf4665bb95338e1652f23d1
parent58a5425154d4d7eec55463e5e2a89b7ade067781 (diff)
2018-04-15 18:02
-rw-r--r--bibliography.bib16
-rw-r--r--processing/chapter.tex84
-rw-r--r--software/chapter.tex4
-rw-r--r--todo.org2
4 files changed, 60 insertions, 46 deletions
diff --git a/bibliography.bib b/bibliography.bib
index 2651b25..ef54ac4 100644
--- a/bibliography.bib
+++ b/bibliography.bib
@@ -1928,7 +1928,6 @@
publisher = {Institute of Electrical and Electronics Engineers ({IEEE})},
}
-
@article{MolinaSanchezAlejandro2013a,
author = {Alejandro Molina-S{\'{a}}nchez and Davide Sangalli and Kerstin
Hummer and Andrea Marini and Ludger Wirtz},
@@ -1942,6 +1941,7 @@
month = {jul},
}
+
@article{Moreels2006,
author = {Moreels, I. and Hens, Z. and Kockaert, P. and Loicq, J. and {Van Thourhout}, D.},
title = {{Spectroscopy of the nonlinear refractive index of colloidal PbSe nanocrystals}},
@@ -2043,6 +2043,20 @@
publisher = {OSA},
}
+@article{NeffMallonNathanA2017a,
+ author = {Nathan A. Neff-Mallon and John C. Wright},
+ title = {Multidimensional Spectral Fingerprints of a New Family of Coherent Analytical
+ Spectroscopies},
+ journal = {Analytical Chemistry},
+ volume = 89,
+ number = 24,
+ pages = {13182--13189},
+ year = 2017,
+ doi = {10.1021/acs.analchem.7b02917},
+ month = {nov},
+ publisher = {American Chemical Society ({ACS})},
+}
+
@article{Nibbering1995,
author = {Nibbering, Etj and Franco, M.A. and Prade, BS and Grillon, G. and {Le Blanc}, C
and Mysyrowicz, A},
diff --git a/processing/chapter.tex b/processing/chapter.tex
index f201721..0d2e6ae 100644
--- a/processing/chapter.tex
+++ b/processing/chapter.tex
@@ -71,7 +71,7 @@ WrightTools is a moderately complex piece of software ($\sim$10,000 source lines
important to keep the package internally organized so that users are able to use the pieces they
need without feeling overwhelmed by the full complexity. %
For organizational purposes, WrightTools is designed in a nested, hierarchical manner through heavy
-use of object oriented programming (see section ...). %
+use of object oriented programming (see \autoref{sof:sec:oop}). %
In this introductory section, I wish to describe the overall structure of WrightTools, without
going into too much detail. %
In this way the reader can have some context in the sections below, where I describe some crucial
@@ -100,7 +100,7 @@ Attributes are not interactive, they are simply pieces of attached information t
accessed. %
For example, \python{wt.__version__} as used in the code fragment above. %
Classes are instructions for construction of particular custom object types, and can be
-instantiated (see section ...). %
+instantiated (see \autoref{sof:sec:oop}). %
We'll talk extensively about the five main WrightTools classes: \python{Axis},
\python{Collection}, \python{Channel}, \python{Data}, and \python{Variable}, in the coming
pages. %
@@ -120,7 +120,7 @@ WrightTools is designed around a universal ``wt5'' file format. %
wt5 files are simply extensions of the hdf5 format, with some additional requirements applied to
their internal structure. %
This puts wt5 files in the same category as other domain-specific heirarchial data formats (see
-section ...). %
+\autoref{sof:sec:hdf}). %
One of the most important features of the HDF5 paradigm is the ability to access portions of the
multidimensional arrays at a time. %
WrightTools takes full advantage of this, such that the WrightTools package is simply an
@@ -134,23 +134,23 @@ There are two classes which are top-level components of the WrightTools package:
interfacing to the stored multidimensional arrays that constitute the CMDS datasets. %
\python{Data} can be instantiated directly, but typically is instantiated by helper functions
within the \python{data} subpackage, or by the \python{open} function. %
-See section ... for more information. %
+See \autoref{pro:sec:creating_data} for more information. %
\python{Collection} is a container class, charged with storing groups of data objects and other
collection objects---empowering users to organize their datasets into clearly structured and well
labeled hierarchies within the wt5 file. %
-See section ... for more information about \python{Collection}. %
+See \autoref{pro:sec:collection} for more information about \python{Collection}. %
The \python{artists} subpackage contains all of the tools needed to plot \python{Data} objects. %
There are ``quick'' artist functions made primarily for use in interactive plotting, and a larger,
more flexable set of classes and functions that can be used to construct more elaborate figures. %
-See section ... for more information. %
+See \autoref{pro:sec:artists} for more information. %
The \python{fit} subpackage is an interface which endeavors to make fitting multidimensional
\python{Data} objects as easy as possible. %
Towards this end, the \python{fit} subpackage takes a unique approach of dimensionality reduction
via fitting. %
-See section .. for more information. %
+See \autoref{pro:sec:fit} for more information. %
The \python{datasets} subpackage is simply a python interface to the set of raw data that is
distributed within WrightTools. %
@@ -167,7 +167,8 @@ using datasets that are guaranteed to be on every machine. %
The \python{diagrams} subpackage is a small set of tools used for drawing diagrams, with a focus on
diagrams commonly required by CMDS practitioners. %
-Currently \python{diagrams} can draw WMELs [CITE] and delay space labels (see figure ...). %
+Currently \python{diagrams} can draw WMELs \cite{LeeDuckhwan1985a} and delay space labels (see
+\autoref{pps:fig:delay_space} for an example). %
\python{diagrams} interfaces well with artists since they both are built on top of matplotlib, so
it is easy for WrightTools users to draw diagrams in the same figure as other elements. %
@@ -200,20 +201,20 @@ As examples:
\begin{table}
\begin{tabular}{c | c | l}
& type & description \\ \hline
- \texttt{Collection} & class & DESCRIPTION TODO \\ \hline
- \texttt{Data} & class & DESCRIPTION TODO \\ \hline
- \texttt{artists} & subpackage & DESCRIPTION TODO \\ \hline
- \texttt{collection} & subpackage & DESCRIPTION TODO \\ \hline
- \texttt{data} & subpackage & DESCRIPTION TODO \\ \hline
- \texttt{datasets} & subpackage & DESCRIPTION TODO \\ \hline
- \texttt{diagrams} & subpackage & DESCRIPTION TODO \\ \hline
- \texttt{exceptions} & module & DESCRPTION TODO \\ \hline
- \texttt{fit} & subpackage & DESCRIPTION TODO \\ \hline
- \texttt{kit} & subpackage & DESCRIPTION TODO \\ \hline
- \texttt{open} & module & DESCRIPTION TODO \\ \hline
- \texttt{units} & module & DESCRIPTION TODO \\ \hline
+ \texttt{artists} & subpackage & Plotting and figure generation. \\ \hline
+ \texttt{Collection} & class & Nestable container for data objects. \\ \hline
+ \texttt{collection} & subpackage & Collection creation functions. \\ \hline
+ \texttt{Data} & class & Central multidimensional dataset class. \\ \hline
+ \texttt{data} & subpackage & Data creation functions. \\ \hline
+ \texttt{datasets} & subpackage & Raw data for examples, testing. \\ \hline
+ \texttt{diagrams} & subpackage & Draw diagrams. \\ \hline
+ \texttt{exceptions} & module & WrightTools exception and warning types. \\ \hline
+ \texttt{fit} & subpackage & Fit data objects. \\ \hline
+ \texttt{kit} & subpackage & Small useful functions and classes. \\ \hline
+ \texttt{open} & module & Universal wt5 file open function. \\ \hline
+ \texttt{units} & module & Unit handling and conversion. \\ \hline
\end{tabular}
- \caption[Components of WrightTools]{
+ \caption[Components of WrightTools.]{
Key components of WrightTools, lexicographically listed.
}
\label{pro:tab:wt}
@@ -243,7 +244,7 @@ Variables contain all of the information about where every piece of hardware was
in the multidimensional dataset, but most of the time users only want to work with data as
parameterized by a few key variables. %
Crucially, the exact choice of parameterization may be context dependent, or multiple
-parameterizations may be desirable. [CITE NEFF-MALLON] %
+parameterizations may be desirable. \cite{NeffMallonNathanA2017a} %
Axes, instances of the WrightTools \python{Axis} class, are easy to use parameterized interfaces to
the variable arrays. %
Axes do not contain any \emph{new} information, they simply contain expressions which describe how
@@ -269,30 +270,30 @@ shape of the data object, by slicing, interpolation, or both. %
\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{fullpath} & attribute & External and internal path to data. \\ \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{kind} & attribute & Instrumental origin of data. \\ \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{natural\_name} & attribute & Natural name. \\ \hline
+ \texttt{ndim} & attribute & Number of dimensions. \\ \hline
+ \texttt{offset} & method & Offset one variable based on another variables values. \\ \hline
+ \texttt{print\_tree} & method & Print a pretty tree including all contents. \\ \hline
+ \texttt{remove\_channel} & method & Remove a channel. \\ \hline
+ \texttt{remove\_variable} & method & Remove a variable. \\ \hline
+ \texttt{rename\_channels} & method & Rename (multiple) channel(s). \\ \hline
+ \texttt{shape} & attribute & Shape of data. \\ \hline
\texttt{share\_nans} & method & Share not-a-numbers between all channels. \\ \hline
- \texttt{size} & attribute & \\ \hline
+ \texttt{size} & attribute & Number of pixels in entire data shape. \\ \hline
\texttt{smooth} & method & Smooth a channel using an n-dimensional Kaiser window. \\ \hline
- \texttt{source} & attribute & \\ \hline
+ \texttt{source} & attribute & File of origin. \\ \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{units} & attribute & Tuple of units for each axis. \\ \hline
+ \texttt{variable\_names} & attribute & Variable names. \\ \hline
+ \texttt{variables} & attribute & Variable objects. \\ \hline
\texttt{zoom} & method & Zoom the data using spline interpolation of the requested order. \\ \hline
\end{tabular}
\caption[Attributes and methods of Data.]{
@@ -416,7 +417,7 @@ Section ... decribes the \python{Axis} class in greater detail. %
\label{pro:tab:axis}
\end{table}
-\section{Creating a data object} % ===============================================================
+\section{Creating a data object} \label{pro:sec:creating_data} % =================================
WrightTools data objects are capable of storing arbitrary multidimensional spectra, but how can w
actually get data into WrightTools? %
@@ -510,7 +511,7 @@ WrightTools. %
\label{pro:tab:from_functions}
\end{table}
-\section{Collections} % ==========================================================================
+\section{Collections} \label{pro:sec:collection} % ===============================================
The WrightTools \python{Collection} class is a container class meant to organize the contents of
the wt5 file. %
@@ -577,8 +578,7 @@ Users can configure which files are routed to which from-function. %
% TODO (also document on wright.tools)
-\clearpage
-\section{Visualizing a data object} % ============================================================
+\section{Visualizing a data object} \label{pro:sec:artists} % ====================================
After importing and manipulating data, one typically wants to create a plot. %
The artists sub-package contains everything users need to plot their data objects. %
@@ -1015,7 +1015,7 @@ To do this, the variable and channel names must agree. %
\label{pro:fig:join_example}
\end{figure}
-\section{Fitting} % ==============================================================================
+\section{Fitting} \label{pro:sec:fit} % ==========================================================
Like the rest of WrightTools, the \python{fit} sub-package is made to play as nicely as possible
with high-dimensional data. %
diff --git a/software/chapter.tex b/software/chapter.tex
index 06fcff9..a3f8d2d 100644
--- a/software/chapter.tex
+++ b/software/chapter.tex
@@ -297,7 +297,7 @@ taking the longest, rather than trying to guess or use intuition. %
Only optimize speed-limiting operations, and stop optimizing once the code runs as quickly as
needed. %
-\section{Object oriented programming} % ----------------------------------------------------------
+\section{Object oriented programming} \label{sof:sec:oop} % ======================================
The work in this dissertation makes heavy use of object oriented programming, so some very basic
introduction to the concept seems warranted. %
@@ -398,7 +398,7 @@ I recommend The Quarks of Object-Oriented Development, by \textcite{ArmstrongDeb
% TODO: consider discussion of polymorphism
-\section{Hierarchical data format} % -------------------------------------------------------------
+\section{Hierarchical data format} \label{sof:sec:hdf} % =========================================
One of the particularly important challenges in CMDS is data storage. %
CMDS datasets are multi-dimensional, and the particular dimensions are different from experiment
diff --git a/todo.org b/todo.org
index 54a48d9..88735ef 100644
--- a/todo.org
+++ b/todo.org
@@ -3,7 +3,6 @@
* IDEA incorporate StoddenVictoria2016a :sof:
* IDEA incorporate idea "most people over-trust software" :sof:
* IDEA consider refactoring or expanding OOP section :sof:
-* IDEA insert content from SI :mix:
* TODO summary paragraphs in introduction :pro:
* TODO finish discussing interpolation types :pro:
** TODO describe figure
@@ -44,6 +43,7 @@
* TODO generalizability :opa:
* TODO future directions :opa:
* TODO figure captions :opa:
+* IDEA insert content from SI :mix:
* DONE insert content from main :pss:
CLOSED: [2018-04-12 Thu 21:04]
* IDEA insert content from SI :pss: