CTI correction code

The core is written in java for speed, and a front-end user interface is provided in IDL. Additional instructions are also available in the full headers of the IDL code. Correction takes about 25 minutes per ACS exposure, but is trivially parallelisable to multiple processors.

Install the correction code

  1. Download the core java CTI correction code, uncompress it (tar xvzf CTI_correct_java_v1.0.tar.gz), and place it somewhere convenient - let's say ~/bin/snapSim-current-20090328.230001/.
  2. Download the front-end IDL CTI correction code, uncompress it, and make sure IDL can find it (print,!path in IDL, and check with doc_library,"acs_clock_charge").
  3. If you plan to run the code on a large cluster farm, make sure both paths can be accessed from all nodes. If you have root access to the master node, it will help* to run
  4. Optionally, to save entering the same details many times in the future, you can hardwire

Prepare the data

  1. Place all the *_raw.fits files you want to correct (maybe first try two or three files) into one directory - let's say /data/acs/.
  2. Here is some sample data that I know works fine.
  3. Place the relevant superbias *_bia.fits files into the same directory.

Process the data

Assess the level of improvement

  1. Blink _raw and _cte versions of the same image in DS9.
  2. Run acs_measure_cte,pixelsR,trailsR,DATA_DIR="/data/acs/",SUFFIX="_raw",/FIND,/PLOTS.
  3. Run acs_measure_cte,pixelsC,trailsC,DATA_DIR="/data/acs/",SUFFIX="_cte",/FIND,/PLOTS.


* The correction software manages multiple slave machines from one master node, keeping (several) processes active on the master node while each image is being corrected. Any unix-like machine has a maximum number of processes that it can run. By default, the number allocated to each user is set rather low, because it is expected that multiple users may log in. The CTE code will detect this limit, and stay under it by pausing occasionally if the limit is neared. However, if you know that you will be the only user, you can safely increase your own process quota.

It is also possible to completely detach child processes to the slave machines (or a queueing system) so that the master node could forget about them. However, this requires the slave machines to be able to log back into the master node to return the results. The current method worked best for my cluster, because it is behind a firewall, but I have alternative versions if they would be better for yours.


Last updated by Richard Massey on 29th October 2009.

Valid HTML 4.01!

Valid CSS!