Skip to content
SOC - continuum radiative transfer with OpenCL
Python C Julia
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

ISM - programs for interstellar medium studies

Most of the programs require a working OpenCL environment and the installation of pyOpenCL (see

Apart from SOC, the other programs assume that the source tree exists under one's own home directory, in ~/GITHUB. If the files are elsewhere, one can set an environmental variable ISM_DIRECTORY. ISM_DIRECTORY should point to the directory that contains ISM as a subdirectory (which then contains and further subdirectories FITS, TM, etc.). If ISM_DIRECTORY is not set, that is the same as having ISM_DIRECTORY equal to ~/GITHUB.


The directory SOC contains the SOC continuum radiative transfer program implemented with Python and OpenCL.

The main script for dust emission calculations is Note that the map orientations have changed since the previous versions (that was called The main script for dust scattering calculations is When the program is called, it tries to figure out the location of the source code and the kernel routines (*.c). These should always remain in the same directory. and are development versions (unstable). is a sample script showing how to convert DustEM files to the inputs needed by SOC, including the simple combined dust description (tmp.dust) and the corresponding scattering function file (tmp.dsc) used by SOC.

To deal with the emission from stochastically heated grains, one uses "GSET" format dust files written by In addition,

  • writes "solver files" for single dust components
  • solves emission using these "solver files"
  • can be used to simplify this when a run includes several dust populations, possibly with spatially varying abundances.
  • for making and using the library method (lookup tables for faster conversion of absorptions to emission)
  • automates the process of (1) calculate absorptions, (2) solve dust emission, (3) write emission maps

There are some corresponding julia routines (work in progress). In particular, DE_to_GSET.jl writes GSET format dust files and the combined simple ascii file, and the scattering function files needed by SOC. A2E.jl corresponds to and the (still experimental) script MA2E.jl corresponds to

Practical examples of the end-to-end calculations will be added here in the near future. For the moment, one can examine (or even try to run) the script that includes examples of calculations with equilibrium temperature dust, with stochastically heated dust, possibly with spatially varying abundances and possibly sped up by the use of "library" methods.

For more detailed background and documentation, see

TM - template matching analysis of images

The directory TM contains scripts for template matching (TM) and Rolling Hough Transform -type (RHT) analysis of images. As an example of these, the script will run both routines on the provided FITS image. The expected output is shown in the included test_TM.png. For further information, see


The directory Extinction includes some routines for the calculation of extinction maps based on the (near-infrared) reddening of background stars. The sample script should download input data (photometry for 2Mass stars) from the web, calculate an extinction map for a region specified in the script, and write the results to a FITS files. The programs again require a working OpenCL environment.

For further information, see

FITS - tools for FITS images

The directory FITS contains programs related to the handling of FITS images. At the moment there is a draft program for the resampling of FITS images using the Drizzle algorithm (for example the optional shrinking of input-image pixels is not yet implemented). The execution of


should run a series of tests, comparing the run times of Montage.reproject (assuming that one has installed montage_wrapper) and the OpenCL routine that is run on CPU and on GPU (assuming one has those available). Furthermore, the call g.fits A.fits B.fits

will resample the FITS image g.fits onto the pixels defined by the header of the file A.fits, writing the result as a new file B.fits. If one has successfully run, g.fits and A.fits should already exist. A.fits was there produced from g.fits with the Montage program so that A.fits and the file B.fits, created by the above ResampleImage call, should be similar (except for the borders, see the first link below).

For more information,see

MBB - Modified blackbody fits

The directory contains comparisons between modified blackbody fits with Scipy leastsq and a simplistic OpenCL routine. There are further examples of modified blackbody fits with Markov chain Monte Carlo. The results are discussed at

You can’t perform that action at this time.