TOMToolkit / tom_base

The base Django project for a Target and Observation Manager
https://tom-toolkit.readthedocs.io
GNU General Public License v3.0
26 stars 46 forks source link

TargetList visibility chart #220

Open dmcollom opened 4 years ago

dmcollom commented 4 years ago

In order to provide better support for classical observing, we need to introduce tools to do so. One such tool is a visibility chart for a list of targets in order to organize targets for a classical observing run.

We already support target lists, but a visibility chart for a specific list would be of benefit. Ideally, the visibility chart would, by default, show visibility from all supported sites for all targets--however, this is highly computationally expensive. In practice, the visibility chart should show the visibility for a specific target list, at all sites. It should have fields for airmass and length of visibility, and should only show visibilities that meet that criteria. It should enable a user to show visibility for only one facility, as well as a single site.

Plot.ly, which is already used for the existing visibility plots, has selection events that may meet our needs for alteration of the site, but may also be too narrow of a feature.

Finally, the target list should be able to be prioritized based on the feedback to the user via the visibility plot.

As such, the tasks are as follows:

  1. Add support for priority on target lists.
  2. Add an additional view, linked to from the target list detail, for target list visibility.
  3. Add a plot displaying visibility of a list of targets for all facilities.
  4. Add form fields for airmass, length of observability window, and site selection.
  5. Add interface for prioritizing targets, initially sorted by RA and with a display of RA.
  6. Add support for creation of ObservationRecords for each target after prioritization.
  7. Add support for updating ObservationRecords through the interface for after the observing run.
  8. Enable printing of the prioritized TargetList.
rachel3834 commented 4 years ago

This is great. I like the functionality suggested above. I would add that a common use-case (and perhaps one that might be easier to implement in the short term) would be to have the user indicate the facility and date range from which they would like to observe, then display a list of those targets from an existing TargetList which are visible during that observing run. This would be the zeroth-level implementation that astros would expect I think, so if that is easier to implement, it may be a good place to start.