From 898410c73a331acf30878327fb9dda5f5072cedf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Mantelet?= Date: Mon, 6 Nov 2023 19:31:15 +0100 Subject: [PATCH] Review coordinate limits (#99) Update coordinate limits section. No more explicit coordinate limits (as it would need to give limits for all possible coordinate systems) but make a reference to DALI-1.1 and future versions. There is going to be an erratum to DALI 1.1 specifying that the given coordinate limits in DALI are for equatorial systems. In next version of DALI (1.2) there will be limits for more coordinate systems. --- ADQL.tex | 60 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/ADQL.tex b/ADQL.tex index 616f2a9..71eee2c 100644 --- a/ADQL.tex +++ b/ADQL.tex @@ -1462,16 +1462,6 @@ \subsubsection{Language feature} interoperability reasons the IVOID for the geometry features must not have this hyphen. -\subsubsection{Coordinate limits} -\label{sec:functions.geom.limits} - -The arguments for a geometric function represent spherical coordinates -in units of degrees (square degrees for area). -The values SHOULD be limited to [0, 360] and [-90, 90]. - -Details of the mechanism for reporting the out of range arguments are -implementation dependent. - \subsubsection{Datatype functions} \label{sec:functions.geom.type} @@ -1516,6 +1506,24 @@ \subsubsection{Datatype functions} and \verb:: enables the use of geometric functions and column references. +\subsubsection{Coordinate limits} +\label{sec:functions.geom.limits} + +The arguments for a geometric function represent spherical coordinates +in units of degrees (square degrees for area). + +ADQL implementors and users MUST follow coordinate ranges defined in DALI 1.1 +and later. + +Note that at the time of the ADQL 2.1 recommendation, no agreed-upon, reliable, +IVOA-approved convention for what ranges apply to which reference system exists. +Such convention is foreseen to be defined in DALI. Presently, DALI 1.1 only +defines ranges for equatorial coordinates. However, this is expected to be +updated in future DALI versions. + +Details of the mechanism for reporting the out of range arguments are +implementation dependent. + \subsubsection{Coordinate system} \label{sec:geom.coordsys.param} @@ -1689,10 +1697,10 @@ \subsubsection{BOX} where: \begin{itemize} \item the center position is given by a pair of numeric coordinates - in degrees, or a single geometric POINT + in degrees, or a single geometric POINT + \item the values of coordinates of the center position are subject to the + constraints laid down in \SectionRef{sec:functions.geom.limits} \item the width and height are given by numeric values in degrees - \item the center position and the width and height MUST be within the ranges defined in - \SectionRef{sec:functions.geom.limits}. \end{itemize} For example, a BOX of ten degrees centered on a position @@ -1766,10 +1774,10 @@ \subsubsection{CIRCLE} The function arguments specify the center position and the radius, where: \begin{itemize} \item the center position is given by a pair of numeric coordinates - in degrees, or a single geometric POINT - \item the radius is a numeric value in degrees - \item the center position and the radius MUST be within the ranges defined in - \SectionRef{sec:functions.geom.limits}. + in degrees, or a single geometric POINT + \item the values of coordinates of the center position are subject to the + constraints laid down in \SectionRef{sec:functions.geom.limits} + \item the radius is a numeric value in degrees. \end{itemize} For example, a CIRCLE of ten degrees radius centered on position @@ -2073,8 +2081,8 @@ \subsubsection{POINT} The function arguments specify the position, where: \begin{itemize} \item the position is given by a pair of numeric coordinates in degrees - \item the numeric coordinates MUST be within the ranges defined in - \SectionRef{sec:functions.geom.limits}. + \item the values of coordinates are subject to the constraints laid down in + \SectionRef{sec:functions.geom.limits} \end{itemize} For example, a function expressing a point with right ascension of 25 degrees @@ -2122,10 +2130,10 @@ \subsubsection{POLYGON} The function arguments specify three or more vertices, where: \begin{itemize} - \item the position of the vertices are given as a sequence of - numeric coordinates in degrees, or as a sequence of geometric POINTs - \item the numeric coordinates MUST be within the ranges defined in - \SectionRef{sec:functions.geom.limits} + \item the position of the vertices are given as a sequence of numeric + coordinates in degrees, or as a sequence of geometric POINTs + \item the values of coordinates are subject to the constraints laid down in + \SectionRef{sec:functions.geom.limits} \end{itemize} For example, a function expressing a triangle with vertices at (10.0, @@ -2183,9 +2191,9 @@ \subsubsection{REGION} The REGION function provides a way of expressing a complex region -represented by a single string literal. The standard expressly only +represented by a single string literal. The standard expressly only requires literals as arguments rather than string expressions or column -references. The latter would require parsing these representations +references. The latter would require parsing these representations within the database, which is not intended. This document does not specify possible syntaxes for REGION literals. A de-facto @@ -2997,7 +3005,7 @@ \subsection{Between 2.0 and 2.1} \item Clarification about the serialization of geometries in the \verb:SELECT: clause: basically, use the syntax described in DALI \SectionSee{sec:types.geom} - \item Clarification about coordinates limits + \item Clarification about coordinate limits \SectionSee{sec:functions.geom.limits} \item Clarification about geometry types and functions being spherical