Jump to: navigation, search

Mookodi is a low resolution spectrograph and imager, designed to be operated fully robotically. It was designed and built by Liverpool John Moores University (LJMU), and installed on the Lesedi telescope in December 2021. It will undergo a period of science commissioning observations during the first trimester of 2022, with the ability to do spectroscopy and low-cadence imaging.

Instrument Description


  • Camera: Andor DU934P deep depletion camera, 1024 × 1024 CCD, 13 μm pixels (CCD performance test sheet)
  • Spectral range: 400.5 – 799.5 nm [1]
  • Spectral resolution:
    Dispersion: 3.88 Å/px
    80µm slit
    R = 301.0 @4671.23 Å
    R = 374.4 @5823.89 Å
    R= 492.5 @7642.02 Å
    160µm slit
    R = 172 @4671.23 Å
  • Plate scale: 0.588 arcsec/px
  • Field of view: 10.07' × 10.07'
  • Slit: Long slit with narrow (80µm, 2") and wide (160µm, 4") sections.
  • Filters:
    Filter Slide A: Full set of SDSS filters (u', g', r', i', z')
    Filter Slide B: Longpass order blocking (OB) filter, and clear filter. There are three empty slots in this slide available for future use.

  1. Preliminary values based on lab tests at LJMU or original spec. Actual values to be confirmed during commissioning.

Suitable Uses

  • Spectroscopy
  • Low-cadence imaging: the camera is not a frame transfer camera, and in normal operation exposures are readout after the closure of an iris shutter. The shutter is life-cycle limited and not suitable for high-cadence observations.
  • High-cadence imaging: it is possible to deactivate the shutter and take continues short exposure but users should be aware that the camera is not a frame transfer camera and this mode will result in some readout smearing. There is currently also no GPS triggering of the exposures and that the time recorded in the header (Keyword = DATE-OBS, note: is the start of the exposure) is obtained from the CPU time that is NTP synched. However, the header time has been measured to be accurate within at least 100ms of exact time (see here). NB. High cadence observing (e.g. multiple continues exposures with exposure times < 60sec) SHOULD NOT be done with the shutter on AUTO mode. It is very important to set the shutter to "ALWAYS OPEN" which will deactivate the shutter in the open state but flush the CCD before the start of each new exposure. Failure to do so will likely cause serious damage to the camera's shutter

Data Reduction Pipelines


The python-based data reduction pipeline ASPIRED (M. C. Lam et. al.) developed for Mookodi's sister-instrument SPRAT is compatible and recommended for Mookodi spectroscopic data. General installation and usage instruction can be found here.

More specific Mookodi installation and usage instructions (see included README), with example code and data, can be downloaded here.


Differential photometry can be extracted from Mookodi data using a new "SAAO version", TEA-Phot-SAAO, which is a modified TEA-Phot pipeline developed by Dominic Bowman and Daniel Holdsworth (D. M. Bowman et. al)

Installation Instructions

NB. If you use the TEA-Phot-SAAO code to produce results for a scientific publication, we ask that you please adhere to the citation requests of the developers that are on the main repository page (link below).

  • These instructions should be identical for a Linux or Mac environment and Python 3.7 or a later version is recommended.
  • TEA-Phot-SAAO can be directly downloaded from here or the repository can quickly be cloned through the following command in the terminal:
git clone
  • TEA-Phot-SAAO requires only four additional Python modules. To install (if not already) run the following command in the terminal:
pip install numpy matplotlib sep astropy

NB. you may need to use "pip3" if you haven't linked your pip to python 3.6+

Usage Instructions

  • To reduce and extract photometry from Mookodi data using TEA-phot-SAAO, in the terminal navigate to the folder that contains the file.
  • To display basic usage and optional arguments run:
python -h

NB. you may need to use "python3" if you haven't linked your python to python 3.6+

  • A typical example to reduce and extract photomery from Mookodi data would be something like this:
python SAAO Mookodi MKD --bias MKD --flat MKD --image_dir /full/path/to/science/fits/files/ --bias_dir /full/path/to/bias/fits/files/ --flat_dir /full/path/to/flat/fits/files/ --out_dir /full/path/to/chosen/output/directory/ --do_plot True --source_sigma 1.5

NB. you may need to use "python3" if you haven't linked your python to python 3.6+

  • Wait for window to appear and select target and comparison star with mouse-clicks.
  • Follow further prompts from the pipeline for inputs (aperture size etc.) in the terminal.

Note: TEA-phot will NOT do bias and flat field corrections if not BOTH flat AND bias files are supplied.

Operating Mookodi

Prepare the Lesedi telescope by following the Lesedi start-up recipes. As Mookodi is on the old SHOC port, any relic references to the SHOC port should be taken to mean the Mookodi port.

Mookodi can be operated via a web GUI. Fully scripted observations (incl. auto-focus of the instrument, automatically positioning a target on the slit, and activating auto-guiding) will be available soon.

Operation via the web GUI

Open the web GUI at The GUI is roughly divided into five sections. From top to bottom: opto-mechanic configuration (lamps, slit, filters etc.), target acquisition (auto acquisition of a user defined sky-coordinate on a user specified x and y pixel position), exposure configuration (exposure time, binning etc.), higher level instrument control (start exposures, auto-focus instrument etc.), and an image display.

  1. Opto-Mechanic Configuration:
    • Select the desired configuration for each component. The components moved in/out of the beam via pneumatics (eg. mirrors, slit, grism) and lamps will respond on the push of the button, and indicate when they are busy or in the desired configuration. To conserve lamp lifetime, do not leave them on unneccessary for extended periods of time.
    • Select the required filter via the dropdown menu under the Filter A or Filter B headings and press the SET button to activate the filter slides. The box above the dropdown indicates the name of the filter in position for each slide, or BUSY if the slide is still finding its requested position.
  2. Target Acquisition: TO DO
  3. Exposure Configuration:
    Select the desired configuration for each setting using the dropdown menu below the relevant heading, then press the SET button to issue the command to the camera.
    • Binning: Options are 1×1, 2×2, 3×3, and 4×4.
    • Gain: High (faint objects), medium, and low (bright objects)
    • Rate (readout rate): Fast (5 MHz) - read-noise of 13.6 electrons, and slow (0.05 MHz) - read-noise of 3.3 electrons
    • Image Type: This has no physical effect on the instrument configuration and only populates a header keyword with the selection (possibly useful for automated data reduction)
    • Instrument Mode: This has no physical effect on the instrument configuration and only populates a header keyword with the selection (possibly useful for automated data reduction)
    • Number of exposures: The number of exposures to take at the set camera/instrument configuration. NB. see note on high cadence imaging in the Suitable uses section at the top of this page.
    • Exposure time (in ms): Note the exposure time display does not update when the SET button is pushed, it only updates after the exposure is started. This is a known issue.
  4. Higher Level Instrument Control:
    • Exposure Control:
      • Take exposure/Start: Starts an exposure with the SET exposure configuration
      • Abort: Aborts the current exposure.
    • Guider Control: TODO
    • Shutter Control: TODO
    • Save images: TODO
    • Exposure Information: TODO
    • Nudge telescope pointing: TODO
    • Focus control: TODO
    • CCD Temperature Control: Displays the current CCD temperature, and buttons for cooling down and warming up. The camera takes 10 - 15 minutes to cool, and will stabilise at approximately -70 ºC. Cool the camera at the start of observations and warm it up once you are done.
  5. Image Display:
    • Contains an image display of the last completed exposure, using JS9.
    • A red and blue circle will appear where the preset values are for the pixel positions for the narrow and wide slit locations. Known bug: only appears after the second image is taken and only displays correctly for 1×1 binning.
    • TIPS: TODO.

Note: It is advisable that DARK frames should be taken with the shutter in the "ALWAYS CLOSED" mode. BIAS frames (especially if multiple frames are taken) SHOULD ALWAYS be taken with the shutter in the "ALWAYS CLOSED" mode since this will deactivate the iris-shutter in the closed state and prolong the lifetime, see also high cadence imaging in the Suitable uses section at the top of this page.

Data Access

From a terminal window:

scp* .<local path to copy to> 

Password: Same as username shown above with "Saao" prefixed.

Where yyyy is the year, mm is the month, and dd is the day. The convention is that the data rolls over to the current date at 1200 UTC, hence all the files from a given night are stored in the folder corresponding to the date at the start of the night. e.g. All observations started on the night of 2021/12/11 will be stored in /data/lesedi/mkd/2021/1211/.

Start-up Procedures

It should not ordinarily be necessary for an observer to perform these procedures. However, if a restart is necessary, or if recovering from an unplanned shutdown:

  • The Mookodi host machine is set to boot automatically when powered.
  • There are three services that need to be run before Mookodi can be operated via the web GUI: opto-mechanics, camera, and web server.

TODO - instructions on how to restart all services in the correct order with a single "restart_services" terminal command

Daily Rounds

This section contains information for the technicians performing daily rounds.


  • Switch on the compressor
  • Check that instrument services are running (opto-mech, camera, web service) by opening the web GUI and configuring the instrument as follows:
    • Slit IN
    • OB filter SET (Filter Slide B)
    • 1000 ms exposure SET, Start exposure
  • This should produce a noisy image at the camera (visible in the image view window), and all instrument mechanisms should respond as commanded.
  • Slit OUT, filter out SET
  • If anything fails to respond as expected, follow the troubleshooting procedures.


  • Switch off the compressor
  • Check that the camera is warmed up


Symptom Cause Solution Who to call
Web GUI does not load (i) Network connection problem Check VPN/connection settings Observer
(ii) Web server or other services are not running. Reboot the Mookodi machine and follow the start-up procedures. IT standby
Filter slide reads 'busy' for excessive amount of time and/or times out to 'N/A' The filter slide has not been able to register that it has reached its requested position. This has been observed intermittently on Filter Slide A if Mookodi is in an orientation where the filter slide has to extend or retract against gravity. Command the relevant filter slide to the 'out' position and then back to the required position. Observer
Pneumatics (cal mirror, slit, grism) do not respond to commands, or read 'N/A' after being commanded Air supply failure Check that the instrument air pressure gauge reads between 0.3 - 0.4 kPa. If not, check that the air compressor is on and functioning. Mechanical/electronics standby

Known Issues

  • Exposure time display does not update when the SET button is pushed, it only updates after the exposure is started.
  • Filter slide A can time out when trying to reach a commanded position when Mookodi is in certain orientations.