14. Step 3a: UCDs build SEDs

Can we build SEDs from the results of the three services?

Not simply; photometry metadata in the VO isn’t quite sufficient for that yet. However, UCDs let us do a workaround:

UCD_TO_WL = {
  "phot.mag;em.opt.u": 3.5e-7,
  "phot.mag;em.opt.b": 4.5e-7,
  "phot.mag;em.opt.v": 5.5e-7,
  "phot.mag;em.opt.r": 6.75e-7, ...

  for row in rows:
    for index, col in enumerate(row):
      ucd = row.columns[index].meta.get("ucd", "").lower())
      if ucd.startswith("phot.mag"):
        if ucd in UCD_TO_WL:
          phots.append((UCD_TO_WL[ucd], col))

UCDs (“Unified Content Descriptors”) are VO-standardised strings defining the physics contained in columns. They even have a bit of syntax. In our example, we can see that first, we have magnitudes (“phot.mag”) and then that they were taken in a certain band.

Similarly, “pos.eq.ra” would tell you that something is a right ascension as part of an equatorial position; since tables sometimes have multiple positions in a single row (e.g., different reduction, position in some reference catalog, or position of a sub-feature), you may want to single out a particular column as your preferred, primary, default, or whatever RA. For that, use “pos.eq.ra;meta.main”.

UCDs are particularly nifty in data discovery when you’re looking for tables that have a certain kind of physics. Of course, that only works when people properly mark up their tables with UCDs – be sure to do that on your data whenever you let a VOTable leave your disk. The full list of UCD atoms is available from the IVOA document respository.

The clean way, incidentally, is a proper annotation of the columns in question with full photometry metadata (e.g., central wavelength, bandwidth, perhaps a URL of the detector’s response curve, etc). The details are hellish, but there actually is a photometry DM in the VO. There’s just not a good way to put that info into a VOTable yet. If you’re looking for something to contribute to the VO: this would be a good task. Just ask on the IVOA’s data models mailing list.

Problems

(1)

Can you figure out what the UCD for a B-V colour would be?


Markus Demleitner, Hendrik Heinl