本文整理汇总了Python中MOSFIRE.IO.load_edges方法的典型用法代码示例。如果您正苦于以下问题:Python IO.load_edges方法的具体用法?Python IO.load_edges怎么用?Python IO.load_edges使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MOSFIRE.IO
的用法示例。
在下文中一共展示了IO.load_edges方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from MOSFIRE import IO [as 别名]
# 或者: from MOSFIRE.IO import load_edges [as 别名]
def __init__(self, maskname, bandname, options, fig):
self.fig = fig
self.flat = IO.read_drpfits(maskname, "combflat_2d_%s.fits" % bandname,
options)
self.edges, meta = IO.load_edges(maskname, bandname, options)
self.edgeno=2
self.cid = self.fig.canvas.mpl_connect('key_press_event', self)
self.draw()
示例2: rename_files
# 需要导入模块: from MOSFIRE import IO [as 别名]
# 或者: from MOSFIRE.IO import load_edges [as 别名]
def rename_files(wavenames, maskname, band, wavops):
lamname = Wavelength.filelist_to_wavename(wavenames[0], band, maskname, wavops).rstrip(".fits")
suffix = lamname.lstrip("wave_stack_%s_" % band)
path = os.path.join(wavops["outdir"], maskname)
fnames = ["rectified_%s%s.fits", "rectified_ivar_%s%s.fits", "rectified_sn_%s%s.fits"]
for fname in fnames:
try:
a = get_path(os.path.join(path, fname % (band, "_" + suffix)))
b = os.path.join(path, fname % (band, "")) + gz(a)
os.rename(a, b)
except:
print "Ignoring renaming of: ", fname
pass
edges = IO.load_edges(maskname, band, wavops)
n_slits = len(edges[0])
for i in xrange(1, n_slits + 1):
S = "S%2.2i" % (i)
a = get_path(os.path.join(path, "eps_%s_%s_%s.fits" % (band, suffix, S)))
a_h = pf.open(a)[0].header
obj = a_h["object"]
b = os.path.join(path, "%s_%s_%s_eps.fits" % (maskname, band, obj)) + gz(a)
os.rename(a, b)
a = get_path(os.path.join(path, "ivar_%s_%s_%s.fits" % (band, suffix, S)))
a_h = pf.open(a)[0].header
obj = a_h["object"]
b = os.path.join(path, "%s_%s_%s_ivar.fits" % (maskname, band, obj)) + gz(a)
os.rename(a, b)
a = get_path(os.path.join(path, "eps_%s_%s_%s.fits" % (maskname, suffix, band)))
b = os.path.join(path, "%s_%s_eps.fits" % (maskname, band)) + gz(a)
os.rename(a, b)
a = get_path(os.path.join(path, "snrs_%s_%s_%s.fits" % (maskname, suffix, band)))
b = os.path.join(path, "%s_%s_snrs.fits" % (maskname, band)) + gz(a)
os.rename(a, b)
a = get_path(os.path.join(path, "ivars_%s_%s_%s.fits" % (maskname, suffix, band)))
b = os.path.join(path, "%s_%s_ivars.fits" % (maskname, band)) + gz(a)
os.rename(a, b)
示例3: handle_background
# 需要导入模块: from MOSFIRE import IO [as 别名]
# 或者: from MOSFIRE.IO import load_edges [as 别名]
def handle_background(filelist, wavename, maskname, band_name, options, shifts=None, plan=None, extension=None):
'''
Perform difference imaging and subtract residual background.
The plan looks something like: [['A', 'B']]
In this case, the number of output files is equal to the length of the list (1).
If you choose to use an ABA'B' pattern then the plan will be: [["A", "B"], ["A'", "B'"]]
the background subtraction code will make and handle two files, "A-B" and "A'-B'".
'''
global header, bs, edges, data, Var, itime, lam, sky_sub_out, sky_model_out, band
band = band_name
flatname = "pixelflat_2d_%s.fits" % band_name
hdr, flat = IO.readfits("pixelflat_2d_%s.fits" % (band_name), options)
if np.abs(np.median(flat) - 1) > 0.1:
raise Exception("Flat seems poorly behaved.")
'''
This next section of the code figures out the observing plan
and then deals with the bookeeping of sending the plan
to the background subtracter.
'''
hdrs = []
epss = {}
vars = {}
bss = []
times = {}
Nframes = []
i = 0
header = pf.Header()
for i in xrange(len(filelist)):
fl = filelist[i]
files = IO.list_file_to_strings(fl)
print "Combining"
if shifts is None: shift = None
else: shift = shifts[i]
hdr, electron, var, bs, time, Nframe = imcombine(files, maskname,
options, flat, outname="%s.fits" % (fl),
shifts=shift, extension=extension)
hdrs.append(hdr)
header = merge_headers(header, hdr)
epss[hdr['FRAMEID']] = electron/time
vars[hdr['FRAMEID']] = var
times[hdr['FRAMEID']] = time
bss.append(bs)
Nframes.append(Nframe)
positions = {}
i = 0
for h in hdrs:
positions[h['FRAMEID']] = i
i += 1
posnames = set(positions.keys())
if plan is None:
plan = guess_plan_from_positions(posnames)
num_outputs = len(plan)
edges, meta = IO.load_edges(maskname, band, options)
lam = IO.readfits(wavename, options)
bs = bss[0]
for i in xrange(num_outputs):
posname0 = plan[i][0]
posname1 = plan[i][1]
print "Handling %s - %s" % (posname0, posname1)
data = epss[posname0] - epss[posname1]
Var = vars[posname0] + vars[posname1]
itime = np.mean([times[posname0], times[posname1]], axis=0)
p = Pool()
solutions = p.map(background_subtract_helper, xrange(len(bs.ssl)))
p.close()
write_outputs(solutions, itime, header, maskname, band, plan[i], options)
示例4: handle_rectification
# 需要导入模块: from MOSFIRE import IO [as 别名]
# 或者: from MOSFIRE.IO import load_edges [as 别名]
def handle_rectification(maskname, in_files, wavename, band_pass, barset_file, options,
commissioning_shift=3.0):
'''Handle slit rectification and coaddition.
Args:
maskname: The mask name string
in_files: List of stacked spectra in electron per second. Will look
like ['electrons_Offset_1.5.txt.fits', 'electrons_Offset_-1.5.txt.fits']
wavename: path (relative or full) to the wavelength stack file, string
band_pass: Band pass name, string
barset_file: Path to a mosfire fits file containing the full set of
FITS extensions for the barset. It can be any file in the list
of science files.
Returns:
None
Writes files:
[maskname]_[band]_[object name]_eps.fits --
The rectified, background subtracted, stacked eps spectrum
[maskname]_[band]_[object name]_sig.fits --
Rectified, background subtracted, stacked weight spectrum (STD/itime)
[maskname]_[band]_[object_name]_itime.fits
Rectified, CRR stacked integration time spectrum
[maskname]_[band]_[object_name]_snrs.fits
Rectified signal to noise spectrum
'''
global edges, dats, vars, itimes, shifts, lambdas, band, fidl, all_shifts
band = band_pass
dlambda = Wavelength.grating_results(band)
hpp = Filters.hpp[band]
fidl = np.arange(hpp[0], hpp[1], dlambda)
lambdas = IO.readfits(wavename, options)
if np.any(lambdas[1].data < 0) or np.any(lambdas[1].data > 29000):
print "***********WARNING ***********"
print "The file {0} may not be a wavelength file.".format(wavename)
print "Check before proceeding."
print "***********WARNING ***********"
edges, meta = IO.load_edges(maskname, band, options)
shifts = []
posnames = []
postoshift = {}
for file in in_files:
print ":: ", file
II = IO.read_drpfits(maskname, file, options)
off = np.array((II[0]["decoff"], II[0]["raoff"]),dtype=np.float64)
if "yoffset" in II[0]:
off = -II[0]["yoffset"]
else:
# Deal with data taken during commissioning
if II[0]["frameid"] == 'A': off = 0.0
else: off = commissioning_shift
try: off0
except: off0 = off
shift = off - off0
shifts.append(shift)
posnames.append(II[0]["frameid"])
postoshift[II[0]['frameid']] = shift
print "Position {0} shift: {1:2.2f} as".format(off, shift)
plans = Background.guess_plan_from_positions(set(posnames))
all_shifts = []
for plan in plans:
to_append = []
for pos in plan:
to_append.append(postoshift[pos])
all_shifts.append(to_append)
# Reverse the elements in all_shifts to deal with an inversion
all_shifts.reverse()
theBPM = IO.badpixelmask()
all_solutions = []
cntr = 0
for plan in plans:
p0 = plan[0].replace("'", "p")
p1 = plan[1].replace("'", "p")
suffix = "%s-%s" % (p0,p1)
print "Handling plan %s" % suffix
fname = "bsub_{0}_{1}_{2}.fits".format(maskname,band,suffix)
EPS = IO.read_drpfits(maskname, fname, options)
EPS[1] = np.ma.masked_array(EPS[1], theBPM, fill_value=0)
#.........这里部分代码省略.........