Software

Source code I've written & used for my research

Home


Show content only (no menu, header)



Overview

Most software I write follows the same core architecture, with modules performing specific tasks. The command line interface and core modules to perform frequently used operations are shared between the programs, while application-specific modules differ. Source code is in C, and I follow the GNU build process

All software is available on my github site


Cfits toolkit

Download and install

See Cfits github site

What is Cfits ? (read this first)

Cfits provides a convenient C-based environment to quickly develop new high performance programs manipulating images, as the “basic” operations on images are provided. Cfits is entirely written in C and arranged in modules, allowing easy import/export of C source code. Cfits offers the performance and optimization flexibility of C coding, and also allows simpler/interactive operation. There are 3 ways to do something in Cfits:

  • Interactive mode. When you run Cfits, you can perform simple operations interactively by typing commands after the Cfits prompt.
  • Scripts. Cfits commands can be chained and grouped into scripts for more automatic operation.
  • C coding. When you want to do something for which no Cfits command exists, or when performance optimization is essential, a new Cfits command can be coded in C to perform the task. Other Cfits routines (also in C) can be called to simplify coding.

Cfits is particularly well-suited for use in a Unix environment, and can make efficient use of standard command-line tools available in Linux (such as grep, xargs, awk).

Developing new code

Cfits is not a high-level language for image analysis; its goal is to provide the user with a framework and set of tools to allow rapid development of high performance image-related analysis code in C. Cfits is intended at high performance computing (mode (3): C coding) for users with some knowledge of C language. Modes (1) and (2) are only provided to make it easier to run and test programs. If you are allergic to C and only interested in modes (1) and (2), consider using other tools better suited for this (python/numpy, matlab, IDL, IRAF etc…). Modes (1) and (2) of Cfits do not allow for very complex operations, as those should be coded in C. For example, these modes do not allow easy implementation of a custom “for” loop on the pixels of an image, which would need to be coded in C (which will result in a faster execution time compared to doing loops with high level languages).

Using Cfits without developing new code

Cfits scripts are a convenient way to use Cfits as a “black box” to perform an operation. For example, a script can be written to load a few images, perform the necessary operation, and save the ouput image(s). This script can be one step in a larger data reduction pipeline written in a high level language, using file system I/O.


AtmosphericTurbulenceSimul

Download and install

See AtmosphericTurbulenceSimul github site

Overview

Simulates effect of atmospheric turbulence on wavefronts at visible and near-IR wavelength. Includes chromatic diffractive propagation between layers, inner, outer scales, wind speed and direction for each layer, CN2 profile.

OPD and scintillation can be computed for multiple wavelengths and multiple directions.

Output can be FITS files (cubes), or shared memory image for real-time use by other programs. In shared memory mode, physical time and computer clock time can be synced, with a one-to-one match or a slowing down / speeding up factor.


AdaptiveOpticsControl

Download and install

See AdaptiveOpticsControl github site

Overview

Adaptive Optics Wavefront control tools for high contrast imaging

Uses shared memory for fast low-latency communication to hardware

Includes a simulator of hardware (DM, Camera): the same code can be tested on actual hardware or in a simulation mode.

Supports multiple simultaneously running control loops and data logging.


PIAACMCdesign

Download and install

See PIAACMCdesign github site

Overview

PIAACMC type coronagraph design tool



Page content last updated: 27/06/2023 06:35:52 HST
html file generated 27/06/2023 06:34:41 HST