Git Product home page Git Product logo

photutils_plus's Introduction

photutils_plus

Extended functionality on the astropy-associated photutils photometry package.

Set Up

Clone the repo and run the setup.py. This will also install astropy and photutils if you don't have them already in your environment.

>>> python setup.py develop

I recommend "develop" rather than "install" because you'll probably want to tweak things. (I'm not the Photometry Expert by a long shot.) This was originally written in Python 2 and there may be some compatibility issues in Python 3 that I'm not aware of, but do open an issue if you find them!

Modules

apphot

Can be run on the command line with limited amount of arguments (limited only by the free time of the developer) or be imported with full functionality. See apphot's doc strings for full details of the options.

apphot wraps photutils.CircularAperture and photutils.aperture_photometry into a single function with parameters similar to those of IRAF's DAOPHOT task. It outputs a photometry file with all the selected parameters saved in the header, including background estimates, similar to IRAF's .mag output files (but with a format easier to parse - see example at end of README). In fact, the files are named as .mag by default to aid the transition for those used to their IRAF photometry.

Still missing is the ability to re-centroid sources. To my knowledge, photutils has not developed their centroiding functions to make them able to handle images containing more than one source.

Here are some command-line apphot examples, using an image named "id1l02g2q_flt.fits" and coordinate file named "id1l02g2q_flt.fits.coo.1" for aperture radii 5 and 10 pixels:

 >>> python apphot --im id1l02g2q_flt.fits --coo id1l02g2q_flt.fits.coo.1 --r 5.0 10.0
    
# This will generate two output *mag files in the current working directory named 
    
    id1l02g2q_flt.fits_5.0.mag
    id1l02g2q_flt.fits_10.0.mag
    
# If you set --sep 0, then there will be only one output *mag file named

    id1l02g2q_flt.fits.mag
    
# If the *mag files already exist, they will not be overwritten.
# Instead, the new *mag files will be appended with a number, i.e.,

    id1l02g2q_flt.fits_5.0.mag.1
    id1l02g2q_flt.fits_10.0.mag.1

phot_tools

A module containing tools for the apphot and sourcefind modules. Includes background estimating, masking, and file reading and writing.

plot_coords

Include in your photometry script to plot the coordinates found with sourcefind or another function onto a PNG of the FITS image.

sourcefind

Wraps photutils.daofind and more limitedly, photutils.find_peaks. At this time, it cannot be run from the command-line (which would be easy to include if the developer took the initiative!).

sourcefind.daofind outputs coordinate files with with a default naming scheme is like IRAF's: the image name appended with .coo.

A Scripted Workflow

For a single image, find the sources with sourcefind.daofind.

from photutils_plus.sourcefind import daofind

imagename = 'icqu04rgq_flc.fits'
ext = 0
daofind(imagename, ext=ext, threshold=1050., fwhm=2.5)

This outputs a coordinate file named, by default, after the input image with ".coo" appended: "icqu04rgq_flc.fits.coo".

Now, if you like, plot the coordinates as open circles onto the image.

from photutils_plus.plot_coords import plot_coords

plot_coords('icqu04rgq_flc.fits', 'icqu04rgq_flc.fits.coo', ext=1)

By default, the output PNG image will be named ""icqu04rgq_flc.fits.png".

Finally, perform photometry using apphot.apphot. By selecting "sep_out=False", we are confining all the different aperture radii (units of pixels) to a single file rather than a seperate file for each radius.

from photutils_plus.apphot import apphot

apphot(imagename='icqu04rgq_flc.fits', ext=1, coofile='icqu04rgq_flc.fits.coo', ap_radii=[5, 10, 12], \
sep_out=False)

The output photometry file will be named, by default, as "icqu04rgq_flc.fits.mag". You can also have it return the magnitudes as an astropy.table.Table on top of the .mag file if you set apphot equal to a variable. This goes for sourcefind.daofind as well.

Example Output Photometry File

Here is an example of a .mag file from apphot, where "sep_out=False", so that all the aperture radii are printed in the same file for each source (3 shown in the example below). The header lists all the parameter settings; see the apphot doc strings for more information on available parameters. Tools are available in the phot_tools module for writing and parsing these files. For instance, the header can be read into a dictionary.

# PYTHON                 2.7.5           version
# USER                   cgosmeyer               name
# HOST                   cgosmeyermac             computer
# DATE                   2016-08-13              yyyy-mm-dd
# TIME                   12:43:36                hh:mm:ss
# FUNCTION               apphot                  name
#
# ANNULUS                3.5             0
# AP_RADII               [3, 5, 10]            1
# BACKGLOBAL             False           2
# BACKMETHOD             mean            3
# COLNAMES               ['extr_xpix', 'extr_ypix']              4
# COOFILE                icqu04rgq_flc.coo                  5
# DANNULUS               10.0            6
# EFFECTIVE_GAIN                 None            7
# EXT            1               8
# IMAGENAME              numpy array             9
# MASK           None            10
# METHOD                 subpixel                11
# OUTNAME                icqu04rgq_flc           12
# PIXELWISE_ERROR                None            13
# SEP_OUT                False           14
# SUBPIXELS              5               15
# VERBOSE                False           16
#
ID      radius  aperture_sum    xcenter ycenter mean_local_bkgrd        tot_local_bkgrd   
1       3.0     304.709299699   177.559345818   2038.99871288   5.34541805349   151.138134785   
1       5.0     441.448582702   177.559345818   2038.99871288   2.35808650071   185.203680679    
1       10.0    823.806982231   177.559345818   2038.99871288   6.91177559481   2171.39834319   
2       3.0     253.913460445   213.889087553   2041.26538736   5.64445712521   159.593265342   
2       5.0     327.771958152   213.889087553   2041.26538736   12.0727819215   948.194074825    
2       10.0    11394.4246024   213.889087553   2041.26538736   2.13410972259   670.450342644   
3       3.0     619.62800065    28.2171662015   1995.3848863    5.61276484794   158.697187314   
3       5.0     795.264226607   28.2171662015   1995.3848863    3.13170050909   245.963182815    
3       10.0    1877.91108042   28.2171662015   1995.3848863    2.74348838443   861.892295375
...

photutils_plus's People

Contributors

cgosmeyer avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.