Skip to content

Data Annotations and AstroPyVO

Laurent MICHEL edited this page Apr 26, 2022 · 3 revisions

Moving the VODML parser to the AstroPy PyVo ecosystem

Being here at the standard definition level, we do not propose to implement science applications working with models. The target of the project is rather to figure out what a model-bases toolbox could look like. Skipping any sort of naming or packaging issue, what we might propose to Python users an API looking like that pseudo code:

votable = parse("votable_path")
model_view  = ModelView(votable)
data_row = model_view.get_next_row()
# get the model view on the current data row
mapped_data_row = model_view.get_model_view()
# get an Astropy sky position
sky_position = mapped_data_row.get_sky_position()
.....

To achieve such an API, there are some bottom-to-top steps we have top tackle with:

There are 2 types of questions we have to answer:

  • What to do?
  • How to do it in the Pyxxx context?

The purpose of this Wiki is to gather the responses to these questions

Step 1

The first think we need is to enable Astropy to read/write mapping blocks in VOTables

  • Agree on an API.
    • an example has been developed in this Astropy clone
    • see a code example here
    • The API might be simplified but the basic functionalities are there.
    • There is an issue open on that subject.
  • How to insert that proposal in the AstroPy loop?
  • Which timescale?

Step 2

Create an object able to provide a model view on classical relational data views

  • Where is better location for such an object
    • Astropy? I think astropy core developers will be uncomfortable having too much vo-specific functionality into astropy core TD)
    • PyVO?
    • A specific package? Wouldn't be visible enough + a risk of divergence with PyVO (LM)

Step 3

Create Python classes matching the usual models (Meas, Coords, PhotDM...)

  • Where is the location for such an object
    • Astropy? same reason as above
    • PyVO
      • See the GAIA example here
    • A specific package? same reason as above
Clone this wiki locally