[Volute] r5270 - in trunk/projects/dm/STC/Trans/doc: . diagrams

Volute commit messages volutecommits at g-vo.org
Tue Dec 11 23:07:51 CET 2018


Author: mdittmar
Date: Tue Dec 11 23:07:50 2018
New Revision: 5270

Log:
first pass of WD

Added:
   trunk/projects/dm/STC/Trans/doc/Makefile
   trunk/projects/dm/STC/Trans/doc/Transforms.tex
   trunk/projects/dm/STC/Trans/doc/WD-Trans-1.0.pdf   (contents, props changed)
   trunk/projects/dm/STC/Trans/doc/body.tex
   trunk/projects/dm/STC/Trans/doc/diagrams/ivoa_types.png   (contents, props changed)
   trunk/projects/dm/STC/Trans/doc/diagrams/notation_example.png   (contents, props changed)
   trunk/projects/dm/STC/Trans/doc/ivoa_types.tex
   trunk/projects/dm/STC/Trans/doc/modeling_conventions.tex
   trunk/projects/dm/STC/Trans/doc/other.bib
   trunk/projects/dm/STC/Trans/doc/role_diagram.svg   (contents, props changed)
   trunk/projects/dm/STC/Trans/doc/role_diagram.xml
Modified:
   trunk/projects/dm/STC/Trans/doc/   (props changed)

Added: trunk/projects/dm/STC/Trans/doc/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/projects/dm/STC/Trans/doc/Makefile	Tue Dec 11 23:07:50 2018	(r5270)
@@ -0,0 +1,34 @@
+# ivoatex Makefile.  The ivoatex/README for the targets available.
+
+# short name of your document (edit $DOCNAME.tex; would be like RegTAP)
+DOCNAME = Transforms
+
+# count up; you probably do not want to bother with versions <1.0
+DOCVERSION = 1.0
+
+# Publication date, ISO format; update manually for "releases"
+DOCDATE = 2018-12-10
+
+# What is it you're writing: NOTE, WD, PR, REC, PEN, or EN
+DOCTYPE = WD
+
+# An e-mail address of the person doing the submission to the document
+# repository (can be empty until a make upload is being made)
+AUTHOR_EMAIL=mdittmar at cfa.harvard.edu
+
+# Source files for the TeX document (but the main file must always
+# be called $(DOCNAME).tex
+SOURCES = $(DOCNAME).tex role_diagram.pdf
+
+# List of image files to be included in submitted package (anything that
+# can be rendered directly by common web browsers)
+FIGURES = role_diagram.svg
+
+# List of PDF figures (figures that must be converted to pixel images to
+# work in web browsers).
+VECTORFIGURES = 
+
+# Additional files to distribute (e.g., CSS, schema files, examples...)
+AUX_FILES = 
+
+include ivoatex/Makefile

Added: trunk/projects/dm/STC/Trans/doc/Transforms.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/projects/dm/STC/Trans/doc/Transforms.tex	Tue Dec 11 23:07:50 2018	(r5270)
@@ -0,0 +1,152 @@
+\documentclass[11pt,a4paper]{ivoa}
+\usepackage[margin=4.25cm]{geometry} 
+\input tthdefs
+\setcounter{tocdepth}{2}
+
+\title{WCS Transform Model}
+
+% see ivoatexDoc for what group names to use here
+\ivoagroup{Data Model Working Group}
+
+\author{Arnold Rots}
+\author{Mark Cresitello-Dittmar}
+%\author[????URL????]{????Alfred Usher Thor????}
+%\author{????Fred Offline????}
+
+\editor{Arnold Rots}
+\editor{Mark Cresitello-Dittmar}
+
+% \previousversion[????URL????]{????Funny Label????}
+\previousversion{This is the first public release}
+       
+\begin{document}
+
+\begin{abstract}
+  In creating version 2 of the Space-Time Coordinate Metadata for the Virtual Observatory (STC) Data Model \citep{std:STC}, it was decided to split the content into various component models which focus on particular aspects of the previous model scope.  
+  
+  This model describes the Transform model and covers the following concepts.
+  \begin{itemize}
+  \item The description of mathematical operations which form the building blocks for conversions from one coordinate space to another.
+  \item The combination of individual operations into an arbitrarily complex Transform.
+  \end{itemize}
+\end{abstract}
+
+\section*{Acknowledgments}
+TBD: Get appropriate acknowledgment text
+
+\section*{Conformance-related definitions}
+
+The words ``MUST'', ``SHALL'', ``SHOULD'', ``MAY'', ``RECOMMENDED'', and
+``OPTIONAL'' (in upper or lower case) used in this document are to be
+interpreted as described in IETF standard RFC2119 \citep{std:RFC2119}.
+
+The \emph{Virtual Observatory (VO)} is a
+general term for a collection of federated resources that can be used
+to conduct astronomical research, education, and outreach.
+The \href{http://www.ivoa.net}{International
+Virtual Observatory Alliance (IVOA)} is a global
+collaboration of separately funded projects to develop standards and
+infrastructure that enable VO applications.
+
+\newgeometry{left=1.0in,right=1.0in,bottom=1.0in}
+\section{Introduction}
+
+\subsection{Motivation}
+In Astronomy, it is common practice to define the relation between two coordinate spaces via a series of mathematical operations.  
+With this relation, one can transform coordinates and other objects from one space to the other by applying these operations on
+the set of points from the originating space.  For this document, we focus on 2 use cases.
+
+\subsubsection{Image axes}
+Pixelated image axes are defined in a regularly sampled pixel domain space.  However, to be scientifically useful,
+we must transform these pixel coordinates to one or more coordinate spaces with physical meaning.  For example, we 
+may transform them to various detector coordinates, or to an energy scale.  Ultimately, in the spatial domain, we 
+want the image axes represented in some celestial world coordinate system.  These transforms from pixel to physical 
+to world coordinates may be given with explicitly defined intermediate coordinate spaces, or as a single multi-stage
+transform.  It is, therefore, necessary that the Transform model facilitate the stacking of operations in series.
+
+Astronomical image cubes may have any number of dimensions, but are typically separable into co-dependent axes of 
+1,2, or 3 dimensions.  For example, a 4D image cube may contain a 1D spectral axis, 2D spatial axes, and 1D polarization axis.
+The Transform model must facilitate the combination of operations to cover an n-dimensional space from building blocks 
+of commonly used operations. 
+
+For image cubes, it is common to have one axis represent the polarization state.  In this case, the pixel coordinate is not transformed
+to a continuous physical space, but to a discrete polarization state.  
+
+The industry standard for non-linear projections are defined in:
+\begin{itemize}
+  \item Representations of celestial coordinates in FITS (paper II)\citep{WCSpaperII}
+  \item Representations of spectral coordinates in FITS (paper III)\citep{WCSpaperIII}
+\end{itemize}
+This document, in no way, duplicates that work, but rather, defines model elements compatible with these specifications.  In that way,
+any implementation of these standards are automatically compatible with this model.  However, these standards do not cover the full
+range of non-linear distortions seen from today's instruments.  It is, therefore, necessary that this model be extensible to represent
+additional distortion types as needed.
+
+\subsubsection{Virtual data}
+In addition to image axes, Astronomical data is often defined as a mathematical function of other data.  In this case, the originating
+coordinate space is not pixelated, but any arbitrary coordinate space.  Examples of this include sparse cubes where the world coordinates
+are defined in terms of the physical detector coordinates, and image data values which may also have transforms associated with them.
+
+
+\subsection{Requirements}
+The primary goal of this document is the specification of a Data Model for industry standard transformation operations.
+The Data Model SHALL, at a minimum: 
+\begin{enumerate}
+\item Support the following transform operations: Linear, Matrix, Lookup, FITS WCS projections.
+\item Support transform specifications in 1,2, or 3 dimensions.
+\item Support multi-stage transforms, (ie: perform operation A, then perform operation B on the result).
+\item Conform to VO-DML \citep{std:VODML} modeling practices. 
+\item Be extensible 
+\end{enumerate}
+
+\subsection{Context and Scope}
+This document is a result from updating the \href{http://www.ivoa.net/documents/latest/STC.html}{Space-Time Coordinate Metadata for the Virtual Observatory} (STC) \citep{std:STC} model for use in VO-DML compliant models.
+
+The update and revision of the STC model has sub-divided the content into component models, each covering a portion of the scope of the parent model.  This has allowed for a better description of the relations between the various components, allows for independent development of the component models, and creates smaller, more digestible content for users.
+
+This document describes the WCS Transforms model which provides the metadata describing:
+\begin{itemize}
+  \item The description of mathematical operations which form the building blocks for conversions from one coordinate space to another.
+  \item The combination of individual operations into an arbitrarily complex Transform.
+\end{itemize}
+
+\pagebreak
+\subsection{Role within the VO Architecture}
+
+\begin{figure}[h]
+\centering
+
+% As of ivoatex 1.2, the architecture diagram is generated by ivoatex in
+% SVG; copy ivoatex/archdiag-full.xml to archdiag.xml and throw out
+% all lines not relevant to your standard.
+% Notes don't generally need this.  If you don't copy archdiag.xml,
+% you must remove archdiag.svg from FIGURES in the Makefile.
+
+\includegraphics[width=0.9\textwidth]{role_diagram.pdf}
+\caption{Architecture diagram for this document}
+\label{fig:archdiag}
+\end{figure}
+
+Fig.~\ref{fig:archdiag} shows the role this document plays within the
+IVOA architecture \citep{note:VOARCH}.
+
+% Main Body of the document, extracted from vo-dml/xml using vo-dml2ivoatex
+% with some post-processing.. mainly in the sequencing of content for better readability.
+\input{body}
+
+\appendix
+\section{Changes from Previous Versions}
+
+No previous versions yet.  
+% these would be subsections "Changes from v. WD-..."
+% Use itemize environments.
+
+% Appendix for UML diagram conventions
+\input{modeling_conventions}
+
+% Appendix for IVOA Base types
+\input{ivoa_types}
+
+\bibliography{ivoatex/ivoabib,ivoatex/docrepo,other}
+
+\end{document}

Added: trunk/projects/dm/STC/Trans/doc/WD-Trans-1.0.pdf
==============================================================================
Binary file. No diff available.

Added: trunk/projects/dm/STC/Trans/doc/body.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/projects/dm/STC/Trans/doc/body.tex	Tue Dec 11 23:07:50 2018	(r5270)
@@ -0,0 +1,464 @@
+
+% -------------------------------------------
+% Items to substitute into the ivoatex document template.
+%
+%\ivoagroup{Data Model Working Group}
+
+%\title{WCS Transform Model}
+
+
+%\author{Arnold Rots}
+    
+%\author{Mark Cresitello-Dittmar}
+    
+%\previousversion{0.0}
+      
+% -------------------------------------------
+
+\pagebreak
+\section{Model: trans }
+
+  % INSERT FIGURE HERE
+  \begin{figure}[h]
+  \begin{center}
+    \includegraphics[width=\textwidth]{diagrams/overview.png}
+    \caption{Overview of WCS Transform model elements}\label{fig:overview}
+  \end{center}
+  \end{figure}
+
+  The transform model defines mathematical operations which can be combined in parallel and/or in series, to form complex transformation expressions.
+
+  \subsection{TOperation (Abstract)}
+  \label{sect:TOperation}
+    Transform Operation (TOperation) defines a mathematical operation to be performed on its inputs. These operations form the building blocks with which complex operations can be defined.
+
+  \subsection{Unit}
+  \label{sect:Unit}
+    The Unit transform is an n-Dimensional operation which makes no change to the inputs. ( X' = X )
+
+  \subsection{Shift}
+  \label{sect:Shift}
+    A 1-Dimensional operation defining a simple offset. ( X' = X + shift )
+
+    \subsubsection{Shift.shift}
+      \textbf{vodml-id: Shift.shift} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      The amount of offset to apply.
+
+  \subsection{Scale}
+  \label{sect:Scale}
+    A 1-Dimensional operator for simple scaling. ( X' = factor*X )
+
+    \subsubsection{Scale.factor}
+      \textbf{vodml-id: Scale.factor} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      The scale factor.
+
+  \subsection{Rotate}
+  \label{sect:Rotate}
+    A 2-Dimensional rotation operation.
+
+    \subsubsection{Rotate.angle}
+      \textbf{vodml-id: Rotate.angle} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      Rotation angle in degrees, applied in counter-clockwise direction.
+
+  \subsection{Matrix}
+  \label{sect:Matrix}
+    An M x N matrix operation. Each cell of the matrix is provided by a MatrixElement object. Missing elements should be considerd to equal 0.
+
+    \noindent \textbf{constraint} \newline
+    \indent    \textbf{detail: Matrix.Matrix.element[] maxlength = M*N }\newline
+
+
+    \subsubsection{Matrix.M}
+      \textbf{vodml-id: Matrix.M} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      Number of rows in the matrix.
+
+    \subsubsection{Matrix.N}
+      \textbf{vodml-id: Matrix.N} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      Number of columns in the matrix.
+
+    \subsubsection{Matrix.element}
+      \textbf{vodml-id: Matrix.element} \newline
+      \textbf{type: trans:MatrixElement} \newline
+      \textbf{multiplicity: 0..*} \newline
+      Collection of MatrixElements which define each cell of the matrix. The total number of elements MUST NOT exceed M*N, any missing elements result a cell with value=0.0.
+
+  \subsection{MatrixElement}
+  \label{sect:MatrixElement}
+    The value of cell m,n in an M x N matrix.
+
+    \subsubsection{MatrixElement.m}
+      \textbf{vodml-id: MatrixElement.m} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      Matrix cell row number.
+
+    \subsubsection{MatrixElement.n}
+      \textbf{vodml-id: MatrixElement.n} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      Matrix cell column number.
+
+    \subsubsection{MatrixElement.value}
+      \textbf{vodml-id: MatrixElement.value} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      Matrix cell value.
+
+  \subsection{Lookup}
+  \label{sect:Lookup}
+    Defines a lookup table operation. The Lookup is comprised of a series of value pairs (LookupEntry). All members of the series MUST be of the same type.
+
+    \subsubsection{Lookup.entry}
+      \textbf{vodml-id: Lookup.entry} \newline
+      \textbf{type: trans:LookupEntry} \newline
+      \textbf{multiplicity: 1..*} \newline
+      Set of lookup table entries forming a discrete mapping from the native space to the target space.
+
+  \subsection{LookupEntry (Abstract)}
+  \label{sect:LookupEntry}
+    This is an abstract head of lookup table entry objects. Each entry provides a discrete translation of a 'native' value to the corresponding 'target' value.
+
+  \subsection{NumericEntry}
+  \label{sect:NumericEntry}
+    A 1-Dimensional discrete mapping of numeric values.
+
+    \subsubsection{NumericEntry.nativeValue}
+      \textbf{vodml-id: NumericEntry.nativeValue} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      The native, or reference, value of the lookup entry.
+
+    \subsubsection{NumericEntry.targetValue}
+      \textbf{vodml-id: NumericEntry.targetValue} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      The target, or resulting, value of the lookup entry.
+
+  \subsection{StringEntry}
+  \label{sect:StringEntry}
+    A 1-Dimensional discrete mapping of an integer counter to a corresponding string form. A simple use case example is to transform a pixel index value to a particular Polarization state represented as a string.
+
+    \subsubsection{StringEntry.nativeValue}
+      \textbf{vodml-id: StringEntry.nativeValue} \newline
+      \textbf{type: ivoa:integer} \newline
+      \textbf{multiplicity: 1} \newline
+      The native, or reference, value of the lookup entry.
+
+    \subsubsection{StringEntry.targetValue}
+      \textbf{vodml-id: StringEntry.targetValue} \newline
+      \textbf{type: ivoa:string} \newline
+      \textbf{multiplicity: 1} \newline
+      The target, or resulting, value of the lookup entry.
+
+  \subsection{WCSProjection (Abstract)}
+  \label{sect:WCSProjection}
+    Abstract head of World Coordinate System (WCS) projection operations. We do not attempt to define the projections here, but instead, provide extensions which support the transforms described in the FITS WCS papers II and III.
+
+    \subsubsection{WCSProjection.param}
+      \textbf{vodml-id: WCSProjection.param} \newline
+      \textbf{type: trans:ProjectionParam} \newline
+      \textbf{multiplicity: 0..*} \newline
+      Set of 0 or more parameters providing supplemental metadata required to execute a particular projection algorithm. The number and meaning of the parameters depends on the algorithm. They are typically in the from of "PVi\_j" keyword/value pairs, so we provide a simple ProjectionParam element to accommodate these. The detailed content specification is left to the WCS paper.
+
+  \subsection{ProjectionParam}
+  \label{sect:ProjectionParam}
+    Simple parameter specification for WCS Projections. The parameter is modeled as a simple name/value pair. The details of expectations for the various projection algorithms is left to the WCS paper describing the algorithm.
+
+    \subsubsection{ProjectionParam.name}
+      \textbf{vodml-id: ProjectionParam.name} \newline
+      \textbf{type: ivoa:string} \newline
+      \textbf{multiplicity: 1} \newline
+      The parameter name. This is typically, but not always, given as a "PVi\_j" key.
+
+    \subsubsection{ProjectionParam.value}
+      \textbf{vodml-id: ProjectionParam.value} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      The value for the parameter.
+
+  \subsection{SkyProjection}
+  \label{sect:SkyProjection}
+    This class represents a two-dimensional projection of sky as detailed in the FITS WCS paper II. As in the paper, this operation picks up from the intermediate coordinate system, AFTER the application of the linear transform from pixel to intermediate space. In this model, the full transform from pixel to world is accomplished with a two-stage Transform, first applying the linear operations via a Matrix or other component operations, followed by the SkyProjection operation.
+
+    \subsubsection{SkyProjection.referenceValue}
+      \textbf{vodml-id: SkyProjection.referenceValue} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 2} \newline
+      The target reference values in each dimension. Equivalent to 'crval' in FITS WCS representations.
+
+    \subsubsection{SkyProjection.algorithm}
+      \textbf{vodml-id: SkyProjection.algorithm} \newline
+      \textbf{type: trans:SkyProjectionType} \newline
+      \textbf{multiplicity: 1} \newline
+      The projection algorithm to apply. The value MUST be taken from the enumeration of standard sky projection algorithms. Extracted from 'ctype' in the FITS WCS representations.
+
+  \subsection{SpectralProjection}
+  \label{sect:SpectralProjection}
+    This class represents a nonlinear one-dimensional spectral transform as detailed in the FITS WCS paper III.
+
+    \subsubsection{SpectralProjection.referenceValue}
+      \textbf{vodml-id: SpectralProjection.referenceValue} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      The target reference value for the axis. Equivalent to 'crval' in FITS WCS representations.
+
+    \subsubsection{SpectralProjection.algorithm}
+      \textbf{vodml-id: SpectralProjection.algorithm} \newline
+      \textbf{type: trans:SpectralProjectionType} \newline
+      \textbf{multiplicity: 1} \newline
+      The projection algorithm to apply. The value MUST be taken from the enumeration of non-linear spectral projection algorithms. Extracted from 'ctype' in FITS WCS representations.
+
+    \subsubsection{SpectralProjection.coordType}
+      \textbf{vodml-id: SpectralProjection.coordType} \newline
+      \textbf{type: trans:SpectralCoordType} \newline
+      \textbf{multiplicity: 1} \newline
+      The resulting spectral coordinate type code. Values MUST be taken from the enumerated list of spectral coordinate types. Extracted from 'ctype' in FITS WCS representations.
+
+  \subsection{Polynomial (Abstract)}
+  \label{sect:Polynomial}
+    Abstract head of a family of Polynomial distortion operations.
+
+    \subsubsection{Polynomial.order}
+      \textbf{vodml-id: Polynomial.order} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      The order, or degree, of the polynomial expression.
+
+  \subsection{Polynomial1D}
+  \label{sect:Polynomial1D}
+    A 1-Dimensional Polynomial transform represented by the expression: X' = SUM( Ci*X**Pi), i=0..order. Each term is provided by a PolyCoeff1D object. Missing terms are considered to have a coefficient of 0.0.
+
+    \subsubsection{Polynomial1D.term}
+      \textbf{vodml-id: Polynomial1D.term} \newline
+      \textbf{type: trans:PolyCoeff1D} \newline
+      \textbf{multiplicity: 1..*} \newline
+      A term in the polynomial expression.
+
+  \subsection{PolyCoeff1D}
+  \label{sect:PolyCoeff1D}
+    A term of the polynomial expression. This object provides the coefficient (c) and power (p) of the term, forming the expression c*X**p.
+
+    \subsubsection{PolyCoeff1D.coeff}
+      \textbf{vodml-id: PolyCoeff1D.coeff} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      Multiplicitive coefficient of the term.
+
+    \subsubsection{PolyCoeff1D.power}
+      \textbf{vodml-id: PolyCoeff1D.power} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      The power to raise the value for this term.
+
+  \subsection{Polynomial2D}
+  \label{sect:Polynomial2D}
+    A 2-Dimensional Polynomial transform represented by the expression: X' = SUMi,j( Cij*X**P1i*Y**P2j), i=0..order, j=0..order. Each term is provided by a PolyCoeff2D object. Missing terms are considered to have a coefficient of 0.0.
+
+    \subsubsection{Polynomial2D.term}
+      \textbf{vodml-id: Polynomial2D.term} \newline
+      \textbf{type: trans:PolyCoeff2D} \newline
+      \textbf{multiplicity: 1..*} \newline
+      A term in the polynomial expression.
+
+  \subsection{PolyCoeff2D}
+  \label{sect:PolyCoeff2D}
+    A term of the polynomial expression. This object provides the coefficient (c) and power (p) of the term, forming the expression c*X**p.
+
+    \subsubsection{PolyCoeff2D.coeff}
+      \textbf{vodml-id: PolyCoeff2D.coeff} \newline
+      \textbf{type: ivoa:real} \newline
+      \textbf{multiplicity: 1} \newline
+      Multiplicitive coefficient of the term.
+
+    \subsubsection{PolyCoeff2D.power}
+      \textbf{vodml-id: PolyCoeff2D.power} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 2} \newline
+      The power to raise the values for this term in each dimension.
+
+  \subsection{Reorder}
+  \label{sect:Reorder}
+    This operation facilitates the specification of axis order shuffling between operations. For example, if we have a 3-dimensional coordinate (x,y,z) and wish to perform a 2-dimensional transform on the (x,z) plane, this operation, joined, allows us to define a new axis order (y,x,z) to feed into the next step ( 1D + 2D operations).
+
+    \subsubsection{Reorder.in}
+      \textbf{vodml-id: Reorder.in} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      The input (original) axis/dimension number.
+
+    \subsubsection{Reorder.out}
+      \textbf{vodml-id: Reorder.out} \newline
+      \textbf{type: ivoa:nonnegativeInteger} \newline
+      \textbf{multiplicity: 1} \newline
+      The output (target) axis/dimension number.
+
+  \subsection{TComplexOperation (Abstract)}
+  \label{sect:TComplexOperation}
+    Abstract class to facilitate the combination of Operations in various ways.
+
+    \subsubsection{TComplexOperation.map}
+      \textbf{vodml-id: TComplexOperation.map} \newline
+      \textbf{type: trans:TOperation} \newline
+      \textbf{multiplicity: 1..*} \newline
+      Components of the complex operation. Depending on how the operations are combined, the interpretation of the components will change.
+
+  \subsection{TJoin}
+  \label{sect:TJoin}
+    Combines operations in parallel. This class enables the building of an operation which covers the full dimension space of the input. Axes are distributed to the component operations in order. For example, to perform a shift on a 2-dimensional coordinate (x,y), one would join two Shift operations giving the offset in x and y respectively. Since this class is an operation itself, it can be used as a component in other complex operations.
+
+  \subsection{Transform}
+  \label{sect:Transform}
+    Typically the head of the transformation process, the Transform is a complex operation which executes the component maps in sequence. This allows the building of multi-stage transforms such as a Matrix operation followed by a WCS Projection.
+
+  \subsection{SkyProjectionType}
+  \label{sect:SkyProjectionType}
+
+  Enumeration of non-linear celestial projection algorithm codes as listed in Table 13 of the FITS WCS paper II.
+
+  \noindent \underline{Enumeration Literals}
+  \vspace{-\parsep}
+  \small
+  \begin{itemize}
+  
+    \item[\textbf{AZP}]: \textbf{vodml-id:} SkyProjectionType.AZP \newline
+          \textbf{description:} Zenithal perspective
+    \item[\textbf{SZP}]: \textbf{vodml-id:} SkyProjectionType.SZP \newline
+          \textbf{description:} Slant zenithal perspective
+    \item[\textbf{TAN}]: \textbf{vodml-id:} SkyProjectionType.TAN \newline
+          \textbf{description:} Gnomonic (Tangent plane projection)
+    \item[\textbf{STG}]: \textbf{vodml-id:} SkyProjectionType.STG \newline
+          \textbf{description:} Stereographic
+    \item[\textbf{SIN}]: \textbf{vodml-id:} SkyProjectionType.SIN \newline
+          \textbf{description:} Slant orthographic (Sine projection)
+    \item[\textbf{ARC}]: \textbf{vodml-id:} SkyProjectionType.ARC \newline
+          \textbf{description:} Zenithal equidistant
+    \item[\textbf{ZPN}]: \textbf{vodml-id:} SkyProjectionType.ZPN \newline
+          \textbf{description:} Zenithal polynomial
+    \item[\textbf{ZEA}]: \textbf{vodml-id:} SkyProjectionType.ZEA \newline
+          \textbf{description:} Zenethal equal-area
+    \item[\textbf{AIR}]: \textbf{vodml-id:} SkyProjectionType.AIR \newline
+          \textbf{description:} Airy
+    \item[\textbf{CYP}]: \textbf{vodml-id:} SkyProjectionType.CYP \newline
+          \textbf{description:} Cylindrical perspective
+    \item[\textbf{CEA}]: \textbf{vodml-id:} SkyProjectionType.CEA \newline
+          \textbf{description:} Cylindrical equal-area
+    \item[\textbf{CAR}]: \textbf{vodml-id:} SkyProjectionType.CAR \newline
+          \textbf{description:} Plate carree
+    \item[\textbf{MER}]: \textbf{vodml-id:} SkyProjectionType.MER \newline
+          \textbf{description:} Mercator
+    \item[\textbf{SFL}]: \textbf{vodml-id:} SkyProjectionType.SFL \newline
+          \textbf{description:} Sanson-Flamsteed
+    \item[\textbf{PAR}]: \textbf{vodml-id:} SkyProjectionType.PAR \newline
+          \textbf{description:} Parabolic
+    \item[\textbf{MOL}]: \textbf{vodml-id:} SkyProjectionType.MOL \newline
+          \textbf{description:} Mollweide
+    \item[\textbf{AIT}]: \textbf{vodml-id:} SkyProjectionType.AIT \newline
+          \textbf{description:} Hammer-Aitoff
+    \item[\textbf{COP}]: \textbf{vodml-id:} SkyProjectionType.COP \newline
+          \textbf{description:} Conic perspective
+    \item[\textbf{COE}]: \textbf{vodml-id:} SkyProjectionType.COE \newline
+          \textbf{description:} Conic equal-area
+    \item[\textbf{COD}]: \textbf{vodml-id:} SkyProjectionType.COD \newline
+          \textbf{description:} Conic equidistant
+    \item[\textbf{COO}]: \textbf{vodml-id:} SkyProjectionType.COO \newline
+          \textbf{description:} Conic orthomorphic
+    \item[\textbf{BON}]: \textbf{vodml-id:} SkyProjectionType.BON \newline
+          \textbf{description:} Bonne equal-area
+    \item[\textbf{PCO}]: \textbf{vodml-id:} SkyProjectionType.PCO \newline
+          \textbf{description:} Polyconic
+    \item[\textbf{TSC}]: \textbf{vodml-id:} SkyProjectionType.TSC \newline
+          \textbf{description:} Tangential spherical cube
+    \item[\textbf{CSC}]: \textbf{vodml-id:} SkyProjectionType.CSC \newline
+          \textbf{description:} COBE Quadrilateralized spherical cube
+    \item[\textbf{QSC}]: \textbf{vodml-id:} SkyProjectionType.QSC \newline
+          \textbf{description:} Quadrilateralized spherical cube
+  \end{itemize}
+  \normalsize
+
+
+  \subsection{SpectralProjectionType}
+  \label{sect:SpectralProjectionType}
+
+  Enumeration of non-linear spectral projection algorithm codes as listed in Table 2 of the FITS WCS paper III. NOTE: We exclude the TAB code from this list, that type is handled by the Lookup operation in this model.
+
+  \noindent \underline{Enumeration Literals}
+  \vspace{-\parsep}
+  \small
+  \begin{itemize}
+  
+    \item[\textbf{F2W}]: \textbf{vodml-id:} SpectralProjectionType.F2W \newline
+          \textbf{description:} Frequency - Wavelength
+    \item[\textbf{F2V}]: \textbf{vodml-id:} SpectralProjectionType.F2V \newline
+          \textbf{description:} Frequency - Apparent radial velocity
+    \item[\textbf{F2A}]: \textbf{vodml-id:} SpectralProjectionType.F2A \newline
+          \textbf{description:} Frequency - Air wavelength
+    \item[\textbf{W2F}]: \textbf{vodml-id:} SpectralProjectionType.W2F \newline
+          \textbf{description:} Wavelength - Frequency
+    \item[\textbf{W2V}]: \textbf{vodml-id:} SpectralProjectionType.W2V \newline
+          \textbf{description:} Wavelength - Apparent radial velocity
+    \item[\textbf{W2A}]: \textbf{vodml-id:} SpectralProjectionType.W2A \newline
+          \textbf{description:} Wavelength - Air wavelength
+    \item[\textbf{V2F}]: \textbf{vodml-id:} SpectralProjectionType.V2F \newline
+          \textbf{description:} Apparent radial velocity - Frequency
+    \item[\textbf{V2W}]: \textbf{vodml-id:} SpectralProjectionType.V2W \newline
+          \textbf{description:} Apparent radial velocity - Wavelength
+    \item[\textbf{V2A}]: \textbf{vodml-id:} SpectralProjectionType.V2A \newline
+          \textbf{description:} Apparent radial velocity - Air wavelength
+    \item[\textbf{A2F}]: \textbf{vodml-id:} SpectralProjectionType.A2F \newline
+          \textbf{description:} Air wavelength - Frequency
+    \item[\textbf{A2W}]: \textbf{vodml-id:} SpectralProjectionType.A2W \newline
+          \textbf{description:} Air wavelength - Wavelength
+    \item[\textbf{A2V}]: \textbf{vodml-id:} SpectralProjectionType.A2V \newline
+          \textbf{description:} Air wavelength - Apparent radial velocity
+    \item[\textbf{LOG}]: \textbf{vodml-id:} SpectralProjectionType.LOG \newline
+          \textbf{description:} Logarithm
+    \item[\textbf{GRI}]: \textbf{vodml-id:} SpectralProjectionType.GRI \newline
+          \textbf{description:} Grism
+    \item[\textbf{GRA}]: \textbf{vodml-id:} SpectralProjectionType.GRA \newline
+          \textbf{description:} Grism in air
+  \end{itemize}
+  \normalsize
+
+
+  \subsection{SpectralCoordType}
+  \label{sect:SpectralCoordType}
+
+  Enumeration of spectral coordinate types as listed in Table 1 of the FITS WCS paper III.
+
+  \noindent \underline{Enumeration Literals}
+  \vspace{-\parsep}
+  \small
+  \begin{itemize}
+  
+    \item[\textbf{FREQ}]: \textbf{vodml-id:} SpectralCoordType.FREQ \newline
+          \textbf{description:} Frequency
+    \item[\textbf{ENER}]: \textbf{vodml-id:} SpectralCoordType.ENER \newline
+          \textbf{description:} Energy
+    \item[\textbf{WAVN}]: \textbf{vodml-id:} SpectralCoordType.WAVN \newline
+          \textbf{description:} Wavenumber
+    \item[\textbf{VRAD}]: \textbf{vodml-id:} SpectralCoordType.VRAD \newline
+          \textbf{description:} Radio velocity
+    \item[\textbf{WAVE}]: \textbf{vodml-id:} SpectralCoordType.WAVE \newline
+          \textbf{description:} Vacuum wavelength
+    \item[\textbf{VOPT}]: \textbf{vodml-id:} SpectralCoordType.VOPT \newline
+          \textbf{description:} Optical velocity
+    \item[\textbf{ZOPT}]: \textbf{vodml-id:} SpectralCoordType.ZOPT \newline
+          \textbf{description:} Redshift
+    \item[\textbf{AWAV}]: \textbf{vodml-id:} SpectralCoordType.AWAV \newline
+          \textbf{description:} Air wavelength
+    \item[\textbf{VELO}]: \textbf{vodml-id:} SpectralCoordType.VELO \newline
+          \textbf{description:} Apparent radial velocity
+    \item[\textbf{BETA}]: \textbf{vodml-id:} SpectralCoordType.BETA \newline
+          \textbf{description:} Beta factor (v/c)
+  \end{itemize}
+  \normalsize

Added: trunk/projects/dm/STC/Trans/doc/diagrams/ivoa_types.png
==============================================================================
Binary file. No diff available.

Added: trunk/projects/dm/STC/Trans/doc/diagrams/notation_example.png
==============================================================================
Binary file. No diff available.

Added: trunk/projects/dm/STC/Trans/doc/ivoa_types.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/projects/dm/STC/Trans/doc/ivoa_types.tex	Tue Dec 11 23:07:50 2018	(r5270)
@@ -0,0 +1,29 @@
+\pagebreak
+\section{Data Types}
+
+  \subsection{Base Data Types}
+  \label{sect:ivoa}
+  Provides a set of standardized primitive data types as well as types for representing quantities
+( values with associated units ). We provide a diagram of the model here, and refer the reader to
+Section 5 of the VO-DML modeling specification document \citep{std:VODML} for more information.
+
+
+    \begin{figure}[h]
+    \begin{center}
+      \fbox{\includegraphics[width=0.9\textwidth]{diagrams/ivoa_types.png}}
+      \caption{Base Data Types}\label{fig:basetypes}
+    \end{center}
+    \end{figure}
+
+  \subsubsection{Units}
+  \label{sect:Units}
+  This model requires the use of the IVOA VOUnits Standard \citep{std:VOUNIT} for representing units of physical
+quantities. This standard reconciles common practices and current standards for use within the
+IVOA community.
+
+  \subsubsection{Dates}
+  \label{sect:Dates}
+  The 'datetime' datatype is for expressing date-time values. The string representation of a
+datetime value should follow the FITS convention for representing dates. The FITS standard is
+effectively ISO8601 format without the "Z" tag to indicate UTC (YYYY-MM-DDThh:mm:ss).
+Values are nominally expressed in UTC.

Added: trunk/projects/dm/STC/Trans/doc/modeling_conventions.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/projects/dm/STC/Trans/doc/modeling_conventions.tex	Tue Dec 11 23:07:50 2018	(r5270)
@@ -0,0 +1,61 @@
+\pagebreak
+\section{Modeling Conventions}
+This model follows the VO-DML modeling practices, however, the UML representations may vary depending on the tool used.  Below we describe the graphical representation of the modeling concepts and relations.
+
+  \begin{figure}[h]
+  \begin{center}
+    \fbox{\includegraphics[width=0.9\textwidth]{diagrams/notation_example.png}}
+    \caption{Notation example diagram}\label{fig:notation_example}
+  \end{center}
+  \end{figure}
+
+  \subsection{Class}
+  \label{sect:Class}
+  Classes are represented by a plain box. The class name is annotated in the top window, abstract
+classes use italic typeface. Attributes, if any, are listed in the lower panel. Attributes may only be
+of primitive type (real, string, etc), a defined DataType, or an Enumeration type. Relationships to
+other objects are defined via the composition and reference relation arrows.
+
+  \subsection{DataType}
+  \label{sect:DataType}
+  DataTypes are represented by a box shape similar to Class, but annotated with a "T" symbol in the top left corner.
+
+  \subsection{Enumerations}
+  \label{sect:Enumerations}
+  Enumerations are represented by a box shape similar to Class, but annotated with a "1,2.."
+symbol in the top left corner. Enumeration Literals (possible values) are listed below the
+enumeration class name.
+
+  \subsection{Generalization}
+  \label{sect:Generalization}
+  Generalizations are represented by a red line, with open triangle at the end of the source, or more general, object.
+
+  \subsection{Composition}
+  \label{sect:Composition}
+  The composition relation is indicated by a black line with a solid diamond attached to the
+containing object, and an arrow pointing to the object being contained. The composition relation is
+very tight, where the container is responsible for the creation and existence of the target. Any
+object may be in no more than one composition relation with any container. The attribute name
+for the composition relation is annotated at the destination of the relation (e.g. "+ dataID"). This is
+typically a lower-cased version of the destination class name, but this is not required.
+
+  \subsection{Reference}
+  \label{sect:Reference}
+  The reference relation is indicated by a green line, with an arrow pointing to the object being
+referenced. The reference relation is much looser than composition, the container has no
+ownership of the target, but merely holds a pointer, or other indirect connection to it. The
+attribute name is annotated at the destination of the relation ( e.g. "+ proposal"). This is typically
+a lower-cased version of the destination class name, but may be another name indicating the role
+that the class is playing in this context.
+
+  \subsection{Multiplicity}
+  \label{sect:Multiplicity}
+  All attributes and relations have a multiplicity associated with them. For attributes, the multiplicity
+is contained within brackets just after the attribute name. If no bracket is displayed, this is
+equivalent to '[1]'.
+\begin{itemize}
+\item 1 = one and only one value must be provided.
+\item 0..1 = zero or one value may be provided.
+\item * = zero or more values may be provided (open ended).
+\end{itemize}
+

Added: trunk/projects/dm/STC/Trans/doc/other.bib
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/projects/dm/STC/Trans/doc/other.bib	Tue Dec 11 23:07:50 2018	(r5270)
@@ -0,0 +1,29 @@
+ at Misc{std:VODML,
+  author =       {Gerard Lemson and Omar Laurino and Laurent Bourges and Mark Cresitello-Dittmar and Markus Demleitner and Tom Donaldson and Patrick Dowler and Matthew Graham and Norman Gray and Laurent Michel and Jesus Salgado},
+  title =        {VODML: a consistent modeling language for IVOA data models, Version 1.0},
+  howpublished = {{IVOA Recommendation}},
+  year =         {2018},
+  url =          {http://www.ivoa.net/documents/VODML/index.html}
+}
+ at ARTICLE{WCSpaperII,
+  author =       {Calabretta, M. R. and Greisen, E. W.},
+  title =        {Representations of celestial coordinates in FITS},
+  howpublished = {{Astronomy and Astrophysics}},
+  year =         {2002},
+  month =        Dec,
+  volume =       395,
+  pages =        {1077-1122},
+  doi =          {10.1051/0004-6361:20021327},
+  adsurl =       {http://adsabs.harvard.edu/abs/2002A&A...395.1077C},
+}
+ at ARTICLE{WCSpaperIII,
+  author =       {Greisen, E. W. and Calabretta, M. R. and Valdes, F. G. and Allen, S. L.},
+  title =        {Representations of spectral coordinates in FITS},
+  howpublished = {{Astronomy and Astrophysics}},
+  year =         {2006},
+  month =        Feb,
+  volume =       446,
+  pages =        {747-771},
+  doi =          {10.1051/0004-6361:20053818},
+  adsurl =       {http://adsabs.harvard.edu/abs/2006A&A...446..747G},
+}

Added: trunk/projects/dm/STC/Trans/doc/role_diagram.svg
==============================================================================
Binary file. No diff available.

Added: trunk/projects/dm/STC/Trans/doc/role_diagram.xml
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/projects/dm/STC/Trans/doc/role_diagram.xml	Tue Dec 11 23:07:50 2018	(r5270)
@@ -0,0 +1,22 @@
+<!--
+Document authors (ivoatex maintainers have different rules):
+
+* svn cp this file to role_diagram.xml, and then:
+
+* Remove all <rec> elements in there referring to standards not related
+  to the current one,
+
+* change the tag name for the current one from rec to thisrec
+
+* make role_diagram.pdf
+
+For the time being, keep both role_diagram.pdf and role_diagram.svg as
+created by this in the VCS.  This helps document builds on machines
+with missing dependencies.
+-->
+
+<archdiag xmlns="http://ivoa.net/archdiag">
+	<!-- Data Models: x=430..580, y=250..400 -->
+	<prerec name="VODML" x="490" y="195"/>
+	<thisrec name="Trans" x="550" y="230"/>
+</archdiag>


More information about the Volutecommits mailing list