Boxes and Polygons in ADQL/STC. Questions and recommendation.

Arnold Rots arots at head.cfa.harvard.edu
Fri Oct 23 14:36:46 PDT 2009


ADQL is based on STC-S which represents a subset of STC-X.
In particular, small circles are not included in STC-S.

  - Arnold

Tom McGlynn wrote:
[ Charset UTF-8 unsupported, converting... ]
> Arnold Rots wrote:
> > These shapes are based on their definitions in STC, so I would urge
> > you not to change anything. The "box" you are referring to is a 2-D
> > coordinate interval.
> > 
> >   - Arnold
> >
> 
> Hi Arnold,
> 
> It looks like  the STC definition of a Polygon below is not consistent 
> with the ADQL definition which begins (2.4.13) 'This function expresses 
> a region on the sky with sides denoted by great circles passing through 
> specified points.'  The STC version allows more than great circle 
> boundaries.  So while an STC polygon can have small circle (parallels of 
> latitude) sides, an ADQL polygon cannot.   The ADQL defintion of a box 
> says that it is a special case of a polygon so, in ADQL a box cannot 
> have small circle sides.
> 
> I'm not familiar enough with the STC documentation to understand if in 
> the definition of Box there
>    "The box?s sides are <line segments> or great circles  ..."
> allows small circle sides to be used inside a box-- perhaps STC can 
> treat such boundaries as 'line segments'.  Regardless ADQL polygons are 
> apparently (if perhaps inadvertantly) more restrictive.
> 
> So I'm a little unclear from your answer whether an STC box is supposed
> to represent a region
>     minLon < alpha < maxLon , minLat < delta < maxLat
> that I think of as a box, or a region with geodesic boundaries.  The 
> complex procedure invoking the perpendiculars to the cross strongly 
> suggested the later to me.
> 
> If the later I personally don't care whether we change it in ADQL, but I 
> am curious as to where it is useful to have this construct and if there 
> aren't any reasons to keep it, then maybe a coordinate range box would 
> be more helpful to users.
> 
> By the by I'm glad to see from Pat's comment, that STC addresses the 
> inside/outside issue.
> 
> 	Tom
> 
> > FYI, from STC:
> > 
> > 4.5.1.4 Polygon
> > A Polygon (2-dimensional) is an ordered list of one or more vertices. Its area is
> > defined as that contained within (i.e., to the left of) the lines connecting
> > neighboring (that is, in the ordered list) vertices. If the CoordFlavor is
> > CARTESIAN, these lines are truly lines. The last vertex in the list connects back
> > to the first.
> > If the CoordFlavor is SPHERICAL, the lines are, by default, great-circles, unless
> > the Vertex object contains a SmallCircle object; in that case the line connecting
> > that vertex with its predecessor is a small-circle (parallel). The curvature of the
> > parallel is determined by the pole of the SpatialFrame in the current
> > AstroCoordSystem, unless a PolePosition is explicitly specified in the Vertex
> > object. It is the responsibility of the server to ensure that the positions of the two
> > sequential vertices actually lie on a parallel that is consistent with the implied or
> > specified pole. In order to avoid ambiguities in direction, vertices need to be less
> > than 180? apart in both coordinates. Great circles or small circles spanning 180?
> > require specification of an extra intermediate vertex.
> > The area A of a polygon with n vertices x in Cartesian space may be calculated
> > as:
> >   [go to the document for the equation]
> > The summation is over determinants of matrices formed by the position vectors xi
> > of successive vertices; xn+1 = x1. In spherical space (left-handed coordinates) the
> > area is:
> >   [go to the document for the equation]
> > are the polygon?s angles at the vertices. Reverse the sign for right-handed
> > coordinates. If the coordinate system is defined on the surface of a body (rather
> > than the celestial or unit sphere), one should multiply by the square of the radius.
> > The boundaries are considered part of the region. The inside of the region is
> > defined as that part of coordinate space that is encircled by the polygon in a
> > counter-clockwise sense. What this means is that, in a plane, if A > 0, the ?inside?
> > of the polygon is included; if A < 0, the ?outside? is selected. On a sphere with a
> > left-handed (celestial) coordinate system, if A > 0, one has identified the inside of
> > the polygon; if A < 0, one used the ?outside? angles of the polygon and the area
> > is really 4? ? A . Note that the negation operation is a simple matter of reversing
> > the order of the vertex list.
> > 
> > 4.5.1.5 Box
> > A Box is a special case of a Polygon, defined purely for convenience. It is
> > specified by a center position and size (in both coordinates) defining a cross
> > centered on the center position and with arms extending, parallel to the
> > coordinate axes at the center position, for half the respective sizes on either side.
> > The box?s sides are line segments or great circles intersecting the arms of the
> > cross in its end points at right angles with the arms.
> > 
> > Alex Szalay wrote:
> >> I think Tom raises a good point, and since this will lead to a lot 
> >> of confusion in the future, I think we might want to use BOX indeed 
> >> in the (lat, lon) constraint sense, if others agree as well. We 
> >> can always use a polygon for great circle boundaries. This is probably
> >> the last moment when we can still change things since the implementations
> >> are at an early stage.
> >>
> >>
> >> --Alex
> >>
> >> -----Original Message-----
> >> From: Tom McGlynn [mailto:Thomas.A.McGlynn at nasa.gov] 
> >> Sent: Friday, October 23, 2009 2:25 PM
> >> To: adql at ivoa.net; dal at ivoa.net
> >> Subject: Boxes and Polygons in ADQL/STC. Questions and recommendation.
> >>
> >> In trying to implement the geometry elements of ADQL, I was a bit 
> >> surprised when I finally read the definition of Box carefully.  I had 
> >> assumed that it corresponded to a range in both coordinates.   That's 
> >> what the PgSphere Box is.   However an ADQL box is a polygon, so it's
> >> sides are all great circles.  If I've read this and done my geometry 
> >> properly then, e.g.,  an ADQL box with a size of 180 degrees on both 
> >> sides is in fact the hemisphere centered on the center of the box, i.e., 
> >> a box and a circle are the same for that radius.  The area of the box is 
> >> independent of the center of the box and depends only on the width fields.
> >>
> >> For small boxes, where spherical distortions and projections can be 
> >> ignored, this definition of  a box might be a reasonable approximation 
> >> to the field of view of an observation.  Still, since an ADQL box must 
> >> be aligned with the coordinate axes, it's not really general enough for 
> >> that kind of use.  It needs a positional angle or some such.  I guess 
> >> one might hack the coordinate system element to address this, but I 
> >> don't think that's appropriate.
> >>
> >> So my question is: What is a box intended to be used for?
> >>
> >> My comment is that I think it would be good if and when the ADQL 
> >> document is revised to explicitly note that a box does not correspond to 
> >>   a set of ranges in the coordinates since I suspect that others may, as 
> >> I did, assume that meaning.
> >>
> >> 	Tom McGlynn
> >>
> >> P.S., If I may be permitted a second question. Given that a box is 
> >> special case of polygon, then can I transform from one to the other?
> >> E.g., given a box at (a,b) with widths (c,d), what are the coordinates
> >> of the corners of the box.
> >>
> >> P.P.S.,  This points out an ambiguity in the definition of polygons in 
> >> ADQL.  The definition requires only the vertices of the polygon, to 
> >> create a boundary the divides the sphere into two regions.  However it 
> >> doesn't say which of the two regions is 'inside'.  This is fairly clear
> >> in the plane, where one region is always finite and the other always 
> >> infinite.  For large regions on the sphere there is no such obvious way 
> >> to distinguish regions.  E.g., consider the polygon:
> >>
> >>      POLYGON('ICRS GEOCENTER', 0,0,  120,0, 240,0)
> >>
> >> This is a 'triangle' consisting of three 120 degree segments of the 
> >> equator.  Does it include the northern or southern hemisphere?
> >>
> >> I don't see any obvious resolution to this issue -- maybe allow a 
> >> specification of a point that is inside the polygon?
> >>
> >>
> > --------------------------------------------------------------------------
> > Arnold H. Rots                                Chandra X-ray Science Center
> > Smithsonian Astrophysical Observatory                tel:  +1 617 496 7701
> > 60 Garden Street, MS 67                              fax:  +1 617 495 7356
> > Cambridge, MA 02138                             arots at head.cfa.harvard.edu
> > USA                                     http://hea-www.harvard.edu/~arots/
> > --------------------------------------------------------------------------
> 
--------------------------------------------------------------------------
Arnold H. Rots                                Chandra X-ray Science Center
Smithsonian Astrophysical Observatory                tel:  +1 617 496 7701
60 Garden Street, MS 67                              fax:  +1 617 495 7356
Cambridge, MA 02138                             arots at head.cfa.harvard.edu
USA                                     http://hea-www.harvard.edu/~arots/
--------------------------------------------------------------------------



More information about the dal mailing list