VODIA (VST OmegaCAM Difference Image Analysis) is a package optimized to detect small photometric variations in crowded fields. The software is based on the DIA package (Difference Image Analysis, written by Woźniak 2000, (Acta Astron. 50, 421; see also Woźniak et al. 2002, Acta Astron. 52, 129) that makes use of the “optimal PSF matching algorithm” with a space-varying kernel (Alard & Lupton 1998, ApJ 503, 325; Alard 2000, A&AS 144, 363). The software includes 6 (+1) independent C programs (corresponding to 6 different steps) and does not use any external library. The inspect method makes use of a fortran program for preliminary analysis of the results. The different steps are:

  1. wcs2pix
    The astrometric solution is used to aligne (and cut accordingly) the scientific images.
  2. Mstack
    To obtain the reference frame from the stacking of the best seeing images.
  3. Getpsf
    Extract PSF from Reference to extract PSF photometry from the difference images.
  4. Aga
    A convolution kernel is found and used to create the difference images.
  5. Getvar
    Detects variable candidates.
  6. Phot
    Produces light curves of variable candidates.
Produces light curves of all objects detected in the reference image (the user can choose between Phot and PhotRef depending on the scientific goal).

Astro-WISE implementation

VODIA has been incorporated into Astro-WISE by A. Volpicelli and F. Getman. This is done by providing a Python wrapper around the C programs which stores the input and output to the Astro-WISE database/data storage. One FORTRAN program is used only by the inspect method for preliminary analysis of the results.

Compiling and installing the C code

The VODIA code can be found in Astro-WISE CVS at:


Extract this archive to whatever directory you like. To compile run ‘make’. To install: ‘make install’. Installation will copy binaries to user bin directory or you can copy them to system directory manually. Up to now, the code is tested for 32-bit machines only.

Running VODIA

[import all python scripts]

awe> from astro.main.VariabilityFrame import VariabilityFrame
awe> from astro.external import Dia
awe> from astro.main.DiaConfig import DiaMstackConfig,DiaGetpsfConfig,

[select science frames]

awe> q = ('projectname')) &\
         ( == '#842' ) &\
         ( == 'ccd50')

awe> regs = [reg for reg in q]

[creates variability object]

awe> v = VariabilityFrame()

[put our list of images as input]

awe> v.regridded_frames = regs

[create the list of images to produce the reference (optional)]
awe> q = ('projectname')) & \
         ( == '#842' ) &\
         ( == 'ccd50') &\
         ( RegriddedFrame.psf_radius < 0.6 )
awe> v.regridded_frames_for_reference=list(q)

[run VODIA (all programs automatically)]

awe> v.make()

[to interactively check the results]

awe> v.inspect()

[Example of changing one parameter (C_MIN=detection threshold) and run again
getvar and phot]

awe> print v.getvar_config.C_MIN
awe> v.getvar_config.C_MIN = 0.9
awe> v.make_getvar()
awe> v.make_phot()

[check again new results]

awe> v.inspect()

[storing the file with the light curves]


[commit the results to database]

awe> v.commit()

The output consists of one ASCII file with N lightcurves (N being the number of sources analyzed).


A manual with a detailed description of VODIA is available at the Astro-WISE web site.