Implementation experience with SIA 2

François Bonnarel francois.bonnarel at astro.unistra.fr
Mon Sep 29 11:33:42 CEST 2014


Hi Walter,
Hi all,
    I will integrate your points on the RFC page. that's the way to 
express concerns at this step of the process
    Some of your points got answers in July. I will also integrate them.
    We will see what must still be considered.
    A new verson is in preparation anyway.
     It will hopefully be posted before Interop,and you can check this 
one about your concerns
    I encourage you to present your experience (even with demos) at the 
appropriate sessions in banff if you are coming
    I don't think we will be ready for the TCG review  before Interop anyway
Best regards
François
Le 27/09/2014 01:28, Walter Landry a écrit :
> Hello Everyone,
>
> Back in July, I sent a note to this list about some issues I had with
> SIA 2.0.  Since then, we have implemented a synthetic image generation
> service for the Planck satellite.  We tried to implement this is in a
> way consistent with SIA 2.0, but we had some difficulties.
>
> 1) BAND
>
>     The Planck satellite detector bands are all specified in GHz: 30,
>     44, 70, etc.  These are nice, integer numbers.  Mapping to
>     wavelength leaves me with numbers that are not exactly
>     representable in floating point.  This means that every search has
>     to give a range.  It would be nice if I could specify the frequency
>     instead of the wavelength.  We ended up using the keyword FREQ in
>     MHz, since I do not know of any astronomical observations of EM
>     radiation that go lower than that.
>
> 2) RANGE
>
>     As I mentioned in July, RANGE is prohibitively expensive for this
>     data set.  So we do not support it, will never support it, and I
>     still think it should not be part of the spec.
>
> 3) POS
>
>     Since this is a synthetic image generation service, it would be
>     nice to make rectangular images.  The current SIA 2.0 spec has no
>     great circle rectangles.  The client has to construct the polygons
>     themselves, which is non-trivial.  Given the negative reaction I
>     got to Box's last time, we ended up ditching SIA 2.0 for this
>     entirely and using SIA 1 syntax: POS, SIZE, CFRAME, CDELT (though
>     SPATRES would have been fine).  I would really prefer a better
>     mechanism than this.
>
> 4) TARGET vs OBJECT
>
>     Why does SIA 2.0 use the TARGET parameter?  OBJECT is an existing
>     standard FITS convention.
>
> 5) Syntax
>
>     Consider these issues:
>
>     a) In July, I highlighted a problem with the syntax of POS
>        parameters.  It requires spaces, which must be URL encoded or
>        things silently break.  Silent breakage is the worst kind of
>        breakage.
>
>     b) Polygon searches use a straight list of numbers.  It would be
>        better to have a list of pairs to make typos more obvious.
>
>     c) We need to be able to select multiple detectors at once, so we
>        would like to have an array of strings.
>
>     d) There is no way to add arbitrary parameters.  COORD was the way
>        to do that in old versions of SIA 2.0.  Now I have to use up a
>        keyword and hope it does not accidentally conflict with new
>        versions of the standard.  This is not going to scale.
>
>     e) We have a smart client doing searches on behalf of the user.  In
>        general, we would like to set arbitrary metadata that are not
>        necessary for the search but convenient for the user.
>
>     This prompted me to use a more general syntax to express queries.
>     Specifically, I used json5
>
>       https://github.com/aseemk/json5
>
>     It is an extension of JSON to make it friendlier to write.  It is a
>     strict superset of JSON and a strict subset of Javascript.  So
>     every valid JSON file is valid json5, and eval() will still work
>     for those of you foolish enough to run it on unverified user input ;)
>     To be specific, a sample query would be
>
>       http://irsa.ipac.caltech.edu/cgi-bin/Planck_TOI/nph-planck_toi_sia?POS=[0.053,-0.062]&CFRAME='GAL'&ROTANG=90&SIZE=1&CDELT=0.05&FREQ=44000&ITERATIONS=20&INSTRUMENT=['24m','24s']&TIME=[[0,55300],[55500,Infinity]]&USER_METADATA={CLIENT:'IRSA Smart Client'}
>
>     Note that the service is not public yet, so this URL will not work
>     for you yet.
>
>     Internally, every parameter is converted into a json5 element.  So
>     this would turn into the json5 document
>
>     {
>       POS:[0.053,-0.062],
>       CFRAME:'GAL',
>       ROTANG:90,
>       SIZE:1,
>       CDELT:0.05,
>       FREQ:44000,
>       ITERATIONS:20,
>       INSTRUMENT:['24m','24s'],
>       TIME:[[0,55300],[55500,Infinity]],
>       USER_METADATA:{CLIENT:'IRSA Smart Client'}
>     }
>
>     Modulo whitespace, this is just replacing '&' with ',' and '=' with
>     ':'.  We also support submitting a json5 document directly
>
>       http://irsa.ipac.caltech.edu/cgi-bin/Planck_TOI/nph-planck_toi_sia?{POS:[0.053,-0.062],CFRAME:'GAL',ROTANG:90,SIZE:1,CDELT:0.05,FREQ:44000,ITERATIONS:20,INSTRUMENT:['24m','24s'],TIME:[[0,55300],[55500,Infinity]],USER_METADATA:{CLIENT:'IRSA Smart Client'}}
>
>     On a side note, I have used JSON (not json5) as input for
>     simulations in geology [1].  The SAMRAI Adaptive Mesh Refinement
>     framework for massively parallel simulations [2] also uses a format
>     that is almost indistinguishable [3] from json5 for input files.
>     So I would claim that json5 would be able to cover any needs that
>     SIMDAL would need in specifying model parameters.
>
> Given all of the issues that I ran into, it is not clear to me that it
> would be a good idea to ratify SIA 2 as it is now.  Whether or not you
> like the changes I made, there seem to be some major deficiencies that
> need to be addressed before the standard can be accepted.
>
> Cheers,
> Walter Landry
>
>
> [1] http://geodynamics.org/cig/software/gale
> [2] https://computation-rnd.llnl.gov/SAMRAI/index.php
> [3] You can separate elements in an array or object with newlines instead of commas.


More information about the dal mailing list