Atomic/Spectral databases and VO integration

I’ve been investigating the VO options for AtomDB/SPEX/others to make a uniform interface for online queries and interactive line identification. I’ve spoken to people at VAMDC and with Markus Demleitner who develops the LineTAP protocol.

A big part of where we go next depends on what exactly we would want an interface to do:

  1. Spectra/linelist output only: This would be a simple line list as a function of whatever plasma parameters (e.g. temperature).
  2. Full access to the underlying atomic data in a standardized format.

I am only going to discuss option 1 here as I think that’s a more achievable goal, but if we want to consider option 2 then that’s a possibility.

LineTAP is an evolution of SLAP, which is still in development. It is a simplified option which will integrate nicely with the VO. My understanding (limited!) is that you convert your database into another format using a tool such as DaCHS and then convert it into The downside is that the format is (as I understand it) unable to incorporate temperature dependence any more complex than on the fly conversion from oscillator strengths. It doesn’t have the capability of any in-built temperature dependence, and that would be a stretch goal if it was ever to be achieved.

VAMDC would meet our requirements (the example case I specified was “can you return the lines of oxygen between 19 and 26 Angstroms in a 1MK plasma”, and they said that was possible). In theory you make your database accept a VSS2 query and return an XSAMS output. This would, in theory, allow us to specify extra keywords such as plasma temperature, density, etc on the input, as long as our database interface can run the model and return the relevant line list.

However, they did issue a few caveats about VAMDC. One is that implementing the VSS2 language is apparently quite tricky, and as relatively few (no?) other sites have similar requirements to us it might be a big time sink. Essentially, if the only inter-database comparisons are between ourselves, getting the VAMDC queries to work might not be worth it. On the output side, they also didn’t think XSAMS was a great format as it cannot be ingested easily into most codes. One idea for the future of VAMDC is to streamline this part but they are not there yet.

Instead they suggested a JSON structure for query with keywords (e.g. {“lambdamin”:19, “T”:1e6} etc) and returning something like a csv file which can be easily read by the end user.

My initial hunch is that that the JSON query should be straightforward to implement and probably to adapt to VSS2 if necessary later on. As for the output, once you have a table, putting a linelist in XSAMS, csv or other format should be straightforward enough. Since standards are good, I would suggest that if we make our own input/output we pick which keywords we want to use from the XSAMS and VSS2 standards, and make our reponses compatible with those where possible, so future changes would be not require another conversion layer.

Thoughts welcome!

I am only allowed to put in 2 links per post, so here are more links to things mentioned above:

SLAP: (PDF) IVOA Recommendation: Simple Line Access Protocol Version 1.0 | Pedro Osuna - Academia.edu
VSS2: VSS2 — VAMDC standards documentation

Thanks a lot Adam for digging into this. It appears that the available formats are not prepared very well for the way that we are used to deal with high-energy spectra, which is a pity.

In order to decide what to do, also given our limited time, it is maybe good to think about how you would use spectra in a VO environment. I can imaging clicking on particular sources in the VO environment and be able to view their observed spectra. The easiest next feature would be to overplot the known locations of a couple of strong lines and compare these to the observed spectrum. Reading your post, this should be possible with LineTAP already and does not need a huge line list.

Assuming there is not a lot of data in the VO about the physical nature of the source, there is probably not a lot that you could do automatically. If we would decide to provide a line list with the strongest spectral lines, would it be possible to add information for each line at which temperature (range) it peaks? If a user loads a spectrum from the VO and compares the observed lines with the overplotted line list, then the user could in principle make a rough guess of the temperature. Would this be a feasible simple use case? Anything more would require more detailed analysis, which you probably do not want to do in the VO (yet) anyway, right?