ivoa-std / DALI

DALI: Data AccessLayer Interface
Creative Commons Attribution Share Alike 4.0 International
1 stars 5 forks source link

Unions of interval, circle, etc #39

Open mbtaylor opened 5 months ago

mbtaylor commented 5 months ago

At the DAL I session in Sydney today, @pdowler suggested that the intention of the Interval type in DALI is to support multiple intervals, and possibly similarly for other shape-like types such as Circle; this would address part of ESO's region declaration requirements that are currently provided using STC-S UNIONs.

As currently written the Intervals section 3.4 says:

Floating point interval values serialised in VOTable or service parameters must have the following metadata in the FIELD element: datatype="double" or datatype="float", arraysize="2", xtype="interval".

i.e. there is no reference to the possibility of storing multiple intervals in a single xtype="interval" field.

If the intention is to interpret an xtype="interval" field with 2 n elements as the union of n intervals, this should be stated explicitly. Similarly for other types where this makes sense: circle, range, point?

Then if interval is supposed to support multi-interval, circle multi-circle etc, I don't see why we need multipolygon alongside polygon. Although the array size is not fixed for polygon, the (NaN,NaN) delimiters mean that you can determine from looking at the content whether it's a single- or multi-polygon. The same could apply to shape.

Personally I think it would be fine to allow all of these to support unions of multiple instances of the named type. But there may be arguments against it that I haven't thought of.