Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Control and Monitoring of the Karoo Telescope Arrays using Python (5 years later) by Toufeeq Ockards and Martin Slabber

7b0645f018c0bddc8ce3900ccc3ba70c?s=47 Pycon ZA
October 05, 2017

Control and Monitoring of the Karoo Telescope Arrays using Python (5 years later) by Toufeeq Ockards and Martin Slabber

In 2012 the The SKA SA Control and Monitoring (CAM) gave a talk at PyConZA and it can be viewed at this Youtube Video and more info at PyConZA 2012 link.

5 years later, Python is still used for Controlling and Monitoring of this world-class instrument, that is on its path to being the most sensitive radio telescope in the southern hemisphere. The 64 dish array completion is around the corner and we take a look back at the last 5 years and our time with Python.

7b0645f018c0bddc8ce3900ccc3ba70c?s=128

Pycon ZA

October 05, 2017
Tweet

Transcript

  1. www.ska.ac.za PRESENTER: Toufeeq Ockards Martin Slabber Control and Monitoring of

    the Karoo Telescope Arrays Using Python 5 Years later
  2. www.ska.ac.za Overview What we will cover

  3. www.ska.ac.za SKA SA Location HCD Human Capital Development MeerKAT World

    Class Telescope SKA Project International Participation SKA SA Who we are and What are our goals?
  4. www.ska.ac.za KAT-7 7-dish Precursor • • • • • •

    • •
  5. www.ska.ac.za MeerKAT 64-dish Instrument • • • • •

  6. www.ska.ac.za SKA1-mid 200-dish Instrument • • • • • •

  7. www.ska.ac.za MeerKAT each Dish • • • • • •

    • • • • • •
  8. www.ska.ac.za Control And Monitoring (CAM) Subsystem High level telescope control

    system with scheduling, alarms and monitoring
  9. www.ska.ac.za Control And Monitoring Subsystem diagram CAM CBF SDP BMS

    Data plane SPEAD (UDP Multicast) (big data) TFR WX USE Control plane KATCP (non-http) (little data) FPGA GPU
  10. www.ska.ac.za Hardware device control Observation script Antenna Positioner Antenna Proxy

    point (az,el) target (az,el) • • • • • •
  11. www.ska.ac.za Engineers Scientists Operators Who uses CAM

  12. www.ska.ac.za How do we use Python (not all use cases)

    nose Engineers
  13. www.ska.ac.za How do we use Python (not all use cases)

    Operators
  14. www.ska.ac.za How do we use Python (not all use cases)

    Scientists
  15. www.ska.ac.za Why did we choose Python? Operators need low level

    interface for root cause analysis, easy to learn, easy to extend Commissioning Scientists need a scripting framework that allow full control of different subsystems Engineers needed an interface to get the job done Software development had to integrate to everything imaginable Cost of innovation should be low “Life is too short to write C++ code” - David Beazley Zen of Python Poster by ewjoachim Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
  16. www.ska.ac.za SKA SA and Python Codebase PYPI Packages KAT Packages

    Files Lines of Comments Lines of Code
  17. www.ska.ac.za KATCP • • • • • • • •

    • • Control protocol used for all internal Control And Monitoring communications
  18. www.ska.ac.za Monitoring and archiving Distributing and storing sensors values •

    • • • • • • • • • •
  19. www.ska.ac.za Simulation and testing • • • • • •

    • • • • •
  20. www.ska.ac.za Lessons learnt (Curated from senior engineers)

  21. www.ska.ac.za DEMO

  22. www.ska.ac.za MeerKAT joins the ranks of the world’s great scientific

    instruments through its First Light image
  23. www.ska.ac.za Questions? Thank you

  24. www.ska.ac.za Interfaces ipython

  25. www.ska.ac.za In [30]: kat.print_sensors('m06.*epoch', strategy='period', params='2') Print filtered sensors on

    <all>.m06.*epoch : period : @ 22:21:16 - Page 1 of 1 <B>ack <N>ext Items:4 Per page:50 (+/-) Q to quit ------------------------------ Update strategy: period ------------------------------------ Name Unit Status Value time Update time Value m060.dig.l-band.time.synchronisation-epoch s inactive 10:08:37.79 22:21:15.23 0.0 m061.dig.l-band.time.synchronisation-epoch s nominal 17:41:20.50 22:21:15.28 1507131597.0 m062.dig.l-band.time.synchronisation-epoch s inactive 10:22:14.63 22:21:15.29 0.0 m063.dig.l-band.time.synchronisation-epoch s nominal 17:41:24.50 22:21:15.29 1507131597.0 {a.name:a.sensor.rsc_rsc_he_compressor_supply_pressure.get_value() for a in kat.ants if a.sensor.rsc_device_status.get_status() == 'nominal'}
  26. www.ska.ac.za Interfaces GUI

  27. www.ska.ac.za

  28. www.ska.ac.za

  29. www.ska.ac.za

  30. www.ska.ac.za

  31. www.ska.ac.za

  32. www.ska.ac.za

  33. www.ska.ac.za