diff options
author | Blaise Thompson <blaise@untzag.com> | 2018-04-08 10:27:59 -0500 |
---|---|---|
committer | Blaise Thompson <blaise@untzag.com> | 2018-04-08 10:27:59 -0500 |
commit | f1df2688e6f3a9f077ab8e0c670d1615241c3148 (patch) | |
tree | dabeb55f6b631b422a23fe3c8d315564d15acf0d | |
parent | fbd428f088a3881259f77e3697ff6f7f6c1261ed (diff) |
2018-04-08 10:27
-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: |