This page has notes on our RT code project

To Do

  • Make generalized RT code
    • Write code to make standard parameter files

28 Feb 2012

We have a serious list of tasks ahead of us:

  1. test for jupiter (I have written a runfile and a needed function for this already)
  2. get running for uranus and test
  3. get running for titan and test

  1. test katherine's new code for ch4 coefficients
  2. update makeparfile take any combination of input param files as strings? This would allow use of new param files, and multiple wavelength ranges to be specified. It would make code more transparent to outside user.
  3. incorporate all needed functions/files into one program (e.g. all rayleigh scattering, nh3 absorption, h2h2, etc coefficients covering relevent T and frequency)
  4. NH3 absorption: need to figure out why we'd want to use band models to get k coefficients. Is there a difference between the band model answer and the sromovsky answer? Why? Code in best choice.
  5. make tau_gas work with structure input and output

  1. make into a structure
  2. allow for particle size distribution for calculating mie scattering
  3. Lots of questions to answer: how do we specify things? Where are the calculations done? Do we want to fit for g,w, and asym and back out particle properties, or the other way around?

spectrum fitting:

  1. test time to complete one run
  2. estimate number of parameters that need to be varied, total time to make a 'cube' of models to compare each spectrum to
  3. Mike's genetic algorithm

Repository cleanup

Update repository to ignore (large) reference data files:

  1. location of files can remain the same, however might need to re-initialize repository so that large files aren't downloaded as part of early changesets.
  2. Ignore DS_Store files. These things are regularly updated and don't need to be tracked. Everyone should create/edit the .hgignore_global file to exclude these files.


  1. Directory specification: This is complicated during development, because, e.g. Statia's input TP profiles are within the 'neptune' refdata directory, while other files are (or should be) common. Some things (e.g. Katherine's stuff) are not even in the repository for various reasons. It would be best not have to specify full paths for things, and have the program automatically look for ref files and procedures in the right place.

11 Jan 2012


Statia describes the atmosphere stucture:

Temperature and pressure profiles from either ASCII file or procedure to generate T/P profile.

Mike: Units - mixing ratio relative to H2 (not mole fraction) should be documented in input structure. Works for giant planets but might be a problem for Titan.

Having a text file or procedure as input can decrease the learning curve and allows for text file manipulation.

Error handling with 'STOP' or 'CRASH' a nice start. Is it sufficient?

How to generalize composition? Various numbers and types of species in solar system targets, and perhaps motivated by exoplanets?

A structure for compositions as nested structure within atmosphere.

05 Jan 2012


Mate described a pair of scripts, config and setup, to set shell environments variables for the IDL_PATH and RT_ROOT:

  • The config script sets paths relative to its own location, which can be executed prior to running IDL.
  • The setup script adds a line to the shell configuration file so that if only one instance of the repository is being used, then it is sourced by default.
  • The config script needs to be tested in multiple shells, and to see if a subsequent executions overwrite current environment variables.
  • Alternatives for executing multiple copies of the repository, with unique IDL_PATH is to have an IDL procedure initialize paths, however, this requires that IDL is started within the directory of the repository of interest.

Katherine described scripts for the reading a set of parameter (.par) files for CH4 opacities and outputting a FITS files that selected in the input data based on wavelength ranges.

  • The usage of keywords vs. lists of filenames was discussed; particularly since Katherine put the CH4 .par files into a standard format by reformatting the file headers.
  • NH3 opacities and .par files were discussed briefly; being identified as one of the last steps before having a “universal” tau_gas procedure.
  • Katherine shows plots of using surface interpolation vs linear interpolation of k-coefficients; the TRI_SURF procedure seems to be failing horribly in the case of the sparsely sampled Karkoschka k-coefficients, but not so badly in the case of the Irwin data. The linear interpolation seems to make more sense for the temperature and pressure profiles that are appropriate for Uranus.

Action Items:


  • test the config script and update the README accordingly, for usage of the config file with multiple instances of the repository.
  • review the calculation of k-coefficients from line-by-line data for calculating values on more finely sampled frequency, temperature, & pressure grids.


  • make surface or contour plots of the k-coeffcients to evaluate the interpolation used.

Next Meeting

* 11am Wednesday, 11 Jan 2012. (B40)

Note on sourcing the environment configuration file:

Mate made a mistake on trying to use: ~$ source config to set/edit the environment parameters from the command line… it turns out that config is an OpenSSL library configuration utility, hence the error. Renaming the configuration file to: configenv makes everything work out swell. An example is below:

---------------------------------------------------------------------------------------------- 14:07:04
mate@gina:~$ echo $RT_PATH

---------------------------------------------------------------------------------------------- 14:07:14
mate@gina:~$ pwd
---------------------------------------------------------------------------------------------- 14:07:19
mate@gina:~$ source ~/planets/rt/configenv 
---------------------------------------------------------------------------------------------- 14:07:32
mate@gina:~$ echo $RT_PATH
---------------------------------------------------------------------------------------------- 14:07:35
mate@gina:~$ source ~/someotherdir/configenv 
---------------------------------------------------------------------------------------------- 14:07:56
mate@gina:~$ echo $RT_PATH
---------------------------------------------------------------------------------------------- 14:07:58
mate@gina:~$ echo $IDL_PATH

At first there is no environment variable for RT_PATH. Then sourcing the enviroment configuration file sets the directory. Sourcing the configuration from a different directory (a hypothetical repository) resets the variable. In this example neither file is sourced from within the repository.

The IDL_PATH is appended with the most recent configuration at the top of the path (where IDL looks first). This path information is reset when opening a new shell.

21 Dec 2011


  • We decided to write a code that takes the individual parameter files and makes a cube. The cube will have the lowest common denominator T and P range (reinterpolate Karkoschka onto Sromovsky and Irwin grid; should do a log linear interpolation), and will preserve the wavenumber resolution of the original files.
  • Makefile should run and keep a log of what it did in a header. We want to write it as fits files, because it will be faster than ascii files.
  • We talked about setting paths. Mate wrote a routine which uses pref_set which adds to the beginning of the path; Mike mentions that ./ is an acceptable path.
  • 'Atmosphere' structure input into tau_gas and tau_gas does interpolation from fits parameter file [keep in memory to do fit]. Or, tau_gas can read from a variable in memory.
  • Keep a long view in mind!


  • Mike discovered that his problems with ssh keys have to do with his home directory being on mozzy; Bill is working on this problem.

Action Items:

  • Make the fits-writing make_file: Katherine
  • Figure out paths: Mate
  • Make atmosphere a structure: Statia

Next Meeting?