aboutsummaryrefslogtreecommitdiff
path: root/processing/chapter.tex
diff options
context:
space:
mode:
Diffstat (limited to 'processing/chapter.tex')
-rw-r--r--processing/chapter.tex152
1 files changed, 78 insertions, 74 deletions
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