\chapter{Processing} % TODO: cool quote, if I can think of one \clearpage From a data science perspective, CMDS has several unique challenges: \begin{ditemize} \item Dimensionality of datasets can typically be greater than two, complicating \textbf{representation}. \item Shape and dimensionality change... \item Data can be large (over one million points). % TODO: contextualize large (not BIG DATA) \end{ditemize} I have designed a software package that directly addresses these issues. % 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). % To use WrightTools, simply import: \begin{codefragment}{python} >>> import WrightTools as wt >>> wt.__version__ 3.0.0 \end{codefragment} I'll discuss more about how exactly WrightTools packaging, distribution, and instillation works in \autoref{sec:processing_distbribution}. We can use the builtin Python function \mintinline{python}{dir} to interrogate the contents of the WrightTools package. % \begin{codefragment}{python} >>> dir(wt) ['Collection', 'Data', '__branch__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '__wt5_version__', '_dataset', '_group', '_open', '_sys', 'artists', 'collection', 'data', 'diagrams', 'exceptions', 'kit', 'open', 'units'] \end{codefragment} Many of these are dunder (double underscore) attributes---Python internals that are not normally used directly. % The ten attributes that do not start with underscore are the public API that users of WrightTools typically use. % Within the public API are two classes, \mintinline{python}{Collection} \& \mintinline{python}{Data}, which are the two main classes in the WrightTools object model. % \mintinline{python}{Data} stores spectra directly as multidimensional arrays, and \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{Artists} % ============================================================================== \subsection{Colormaps} % ------------------------------------------------------------------------- \subsection{Interpolation} % --------------------------------------------------------------------- \section{Fitting} % ============================================================================== \section{Distribution and licensing} \label{sec:processing_disbribution} % ======================= \section{Future directions} % ====================================================================