From 49238f14e2eca3565c24b26c4bdd76c49fe35018 Mon Sep 17 00:00:00 2001 From: Blaise Thompson Date: Tue, 13 Mar 2018 09:39:20 -0500 Subject: 2018-03-13 09:39 --- processing/chapter.tex | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) (limited to 'processing') diff --git a/processing/chapter.tex b/processing/chapter.tex index a1967c9..9cd0954 100644 --- a/processing/chapter.tex +++ b/processing/chapter.tex @@ -17,14 +17,6 @@ WrightTools is a software package at the heart of all work in the Wright Group. % TODO: more intro -\section{Data object model} % ==================================================================== - -WrightTools uses a programming strategy called object oriented programming (OOP). % - -It contains a central data ``container'' that is capable of storing all of the information about -each multidimensional (or one-dimensional) spectra. % - -\subsubsection{Python interface} % --------------------------------------------------------------- WrightTools is written in Python, and endeavors to have a ``pythonic'', explicit and ``natural'' application programming interface (API). % @@ -78,8 +70,34 @@ Within the public API are two classes, \mintinline{python}{Collection} \& \mintinline{python}{Collection} stores \textit{groups} of data objects (and other collection objects) in a hierarchical way for internal organization purposes. % -\subsubsection{wt5 file format} % ---------------------------------------------------------------- +\section{Data object model} % ==================================================================== + +WrightTools uses a programming strategy called object oriented programming (OOP). % + +It contains a central data ``container'' that is capable of storing all of the information about +each multidimensional (or one-dimensional) spectra: the \mintinline{python}{Data} class. % +It also defines a \mintinline{python}{Collection} class that contains data objects, collection +objects, and other pieces of metadata in a hierarchical structure. % +Let's first discuss \mitinline{python}{Data}. + +All spectra are stored within WrightTools as multidimensional arrays. % +Arrays are containers that store many instances of the same data type, typically numerical +datatypes. % +These arrays have some \mintinline{python}{shape}, \mintinline{python}{size}, and +\mintinline{python}{size}. % +In the context of WrightTools, they can contain floats, integers, complex numbers and NaNs. % + +The \mintinline{python}{Data} class contains everything that is needed to define a single spectra +from a single experiment (or simulation). % +To do this, each data object contains several multidimensional arrays (typically 2 to 50 arrays, +depending on the kind of data). % +There are two kinds of arrays, instances of \mintinline{python}{Variable} and +\mintinline{python}{Channel}. % +Variables are coordinate arrays that define the position of each pixel in the multidimensional +spectrum, and channels are each a particular kind of signal within that spectrum. % +Typical variables might be \mintinline{python}{[w1, w2, w3, d1, d2]}, and typical channels +\mintinline{python}{[pmt, pyro1, pyro2, pyro3]}. % \section{Artists} % ============================================================================== -- cgit v1.2.3