Description
This program looks for the bright limb of a planet in the rows of a raw image. It depends upon the saturated crescent having negative values. This program is used in the alignment programs which follow.
Usage
findlimb.py fits-file [thresh dir interval0 interval1 min_count] 'thresh' is the fraction (0.0 to 1.0) of the row max that a peak must be. Default = 0.75. 'dir' is the orientation of the bright limb. 0 = sun to the right, 1 = sun to the left. Default = 0. 'interval0' is the number of pixels to the left of each peak. 'interval1' is the number of pixels to the right of each peak. Default = [50, 5]. 'min_count' is the minimum number of negative values which must be in the crescent side of the peak. Default = 5.
The program looks for peaks in each interval = [peak-interval0, peak+interval1] that are >= thresh * row.max(), and such that there are no negative values in the sun side of the interval, and >= min_count negatives in the planet (crescent) side. The program contains a function which can be called from other programs:
findLimbInRow(row, thresh=0.75, dir=0, interval=(50, 5), minCount=5) row is a 1d numpy array.
Examples
This program works reasonably well on most raw images having the sun on either side:
> findlimb.py 090807/raw/im1648.a.fits 0.75 1 5 50 5 Row 0: [] Row 32: [] Row 64: [] Row 96: [] Row 128: [74] Row 160: [59] Row 192: [53] Row 224: [51] Row 256: [51] Row 288: [59] Row 320: [69] Row 352: [91] Row 384: [118] Row 416: [168] Row 448: [] Row 480: []

To use on an image with the other orientation (sun at right), set dir = 0 and reverse the values of interval0 and interval1 (or use the default values):
> findlimb.py 072407/raw/im0215.a.fits 0.75 0 50 5 5 Row 0: [] Row 32: [] Row 64: [] Row 96: [434] Row 128: [467] Row 160: [487] Row 192: [501] Row 224: [504] Row 256: [505] Row 288: [503] Row 320: [498] Row 352: [486] Row 384: [] Row 416: [] Row 448: [] Row 480: []

©Sky Coyote 2007