Python scripts developed while working as an intern at the Gemini Observatory in Hilo, Hawaii.
Manual.pdf - Users manual for Software
GALFIT Wrapper - do_everything_v0.py
Simulation Software - make_sims.py
Plotting and Analysis of Simulations - master_stats.py
Works in progress:
-Provide a full example using publicly available data
-Resolve discrepancies with the inverse variance map and the current method for creating the sigma image
-Consider eliminating the dependency of pyraf in favor of astropy modules
-Consider simplifying/revising/automating the refitting process
Sunday March 25, 2018 : Commit
- Work on Issue #1 on branch update_sims
Sunday March 26, 2018 : Commit
- Continue working on Issue #1 on branch update_sims
- Next step is to fill out comments, rename to full_config, and adjust make_sims.py to accomodate the config parser NTS use fallback option:
print(cfg.get('Section1', 'monster', fallback='No such things as monsters.'))
# -> "No such things as monsters."
Sunday April 1st, 2018 : Still working on issue #1. Unfortunately fallback is only available in 3.2+ :(
Monday April 2nd, 2018 : Commit
- Continue working on Issue #1 on branch update_sims
- Since they're closely related I have also started working on Issue #2
Friday/Saturday April 6th/7th, 2018 : Commit
- Continue working on Issue #1 on branch update_sims and Issue #2
- I'm about to begin refactoring make_feedmes
- The configuration file is pretty much set up, it just needs to be connected to the variables within the script
- Started some basic error catching/logging, but also want to eventually create a test file
Wednesday April 11th, 2018 : Commit
- Continue working on Issue #1 on branch update_sims and Issue #2
- Created some additional logging features and realize I need to give some thought about how to organize this
Monday April 16th, 2018 : Commit
- Continue working on the same issues. Next will be to refactor make_feedmes.
Sunday/Monday April 22nd/23rd, 2018 :
- Refactored the first interpolation. Slowly but surely...
Saturday/Sunday June 2nd/3rd, 2018 : Commit
- Travelled to Norway recently and have been busy with work
- Finished the second interpolation, refactored code so it could be imported (i.e. shove things into if name == "main":), trying to keep the logger and config out of functions, pretty sure I'll have the interpolating/creating feedme files done by my next commit (or at least that's a goal to strive for), decided it probably makes a lot of sense to establish a class for galaxies (galaxies are objects why not use OOP):
class Galaxy(object):
def __init__(self, x, y, mag, re, n, q, pa):
# ID number associated with
# Maybe some like file path (to feedme, fits, etc.)
# Cutout dimensions
# Galaxy position in cutout (x,y). Position in larger image.
# Could write methods to generate the sersic profile or add the cutout to a larger image
self.mag = mag
self.x = x
self.y = y
self.re = re
self.n = n
self.q = q
self.pa = pa
...
can use vars(Galaxy(...)) to capture these attributes and save them off into dictionaries or fits tables (probably)
Monday June 4th, 2018 : Commit
- I think the galaxy class was a great idea, I wrote a function which generates galaxies objects (uses interpolated values if supplied, otherwise random between the range).
- I think it'd be nice to not require the config file, so I'm trying to write functions that make it optional. It'd be nice to just run
python make_sims.py
and have it generate a small field of ~10 galaxies. I'll go back and do that at the end. - Microsoft acquired github today, and it makes me nervous.
Tuesday June 12th, 2018 : Commit
- Got the feedme/input files being created. Logging working as expected. Configuration file working as expected. Putting issue #10 on hold for now. Plots being generated as expected. Next is to run the feedmes (easy) and the convolutions.
Sunday July 22nd, 2018 : Commit
- Finally getting back to this project... work has kept me busy and there's a lot going on this summer. Created the actual galaxy fits models and also have the convolution working. Added a TODO for this line since I'm still not exactly clear on the difference between "fill" and "wrap" for the boundary arg... I recall "wrap" is faster.
- Next will be creating a mknoise function like iraf's and applying it to individual cutouts. Will require some testing to make sure I get it right. I'm trying to eliminate the need for iraf/pyraf since it is somewhat of a pain to install/setup and it is also archaic. If I can achieve the same result (of mknoise) then I could also port the code to python 3 (I believe that's the only barrier).
Thursday August 30th, 2018 : Commit
- Working on replacing
mknoise
found how iraf does this here.