Skip to content

A Python noise model for directly imaging exoplanets

License

Notifications You must be signed in to change notification settings

giadasprink/coronagraph

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

coronagraph

A Python noise model for directly imaging exoplanets with a space based coronagraph.

Build Status MIT licensed

If you use this model in your own research please cite Robinson et al (2016) and include the following acknowledgement: "This work made use of the Python coronagraph noise model, developed by J. Lustig-Yaeger and available at https://github.com/jlustigy/coronagraph/".

Install

  • Clone this github repository:
git clone [email protected]:jlustigy/coronagraph.git
  • (optional) Add to python path to use coronagraph in any dirctory. This is ideal if you want to be able to access the core coronagraph functions from different project directories. If you're on a mac, then open up the .bash_profile file and add the following lines:
# create python path if it isn't already an environment variable
export PYTHONPATH=$PATH
# add this repo to the python path
export PYTHONPATH=${PYTHONPATH}:/Users/Name/Folder/coronagraph/

If you use the .cshrc file it might look something like this:

# For .cshrc (I know, terrible...)
setenv PYTHONPATH ${PYTHONPATH}:/Users/Name/Folder/coronagraph/

Examples

Running luvoir_demo.py

You can start to get a feel for how the coronagraph noise model works by examining and running luvoir_demo.py. From the command line type:

python luvoir_demo.py

You'll get an output file that looks like this:

Now you can create your own scripts like this to play with all the tunable parameters!

Simulate observation with the Integral Field Spectrograph (IFS)

# Import coronagraph package
import coronagraph as cg

# Initialize Telescope, Planet, and Star objects
telescope = cg.Telescope()
planet = cg.Planet()
star = cg.Star()

# Read-in wavelength, reflectance model
model = np.loadtxt('planets/earth_quadrature_radiance_refl.dat', skiprows=8)
lam = model[:,0]            # wavelength (microns)
refl = np.pi * model[:,3]   # geometric albedo
solhr = model[:,2]          # solar flux

# Specify telescope integration time in hours
integration_time = 10.0

# Observe!
lam, dlam, Cratio, spec, sig, SNR = \
      cg.generate_observation(lam, refl, solhr, integration_time, telescope, planet, star)

Simulate observation with the Imaging camera

# Set telescope to 'Imaging' mode
telescope.mode = 'Imaging'

# Load Filter Wheel for obsevation (the default filters are the Johnson-Counsins UBVRI filters)
landsat = cg.filters.landsat()
jc = cg.filters.johnson_cousins2()

# Add Filter Wheel to Telescope
telescope.filter_wheel = jc

# Observe!
lam, spec, sig = cg.generate_observation(lam, refl, integration_time, telescope, planet, star)

Notes

About

A Python noise model for directly imaging exoplanets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.2%
  • HTML 1.6%
  • Other 1.2%