Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
raise IOErr('notascii', filename)
names, args = read_file_data(filename, sep, comment, require_floats)
if colkeys is None:
kwargs = []
if ncols != 1:
_check_args(ncols, dstype)
kwargs.extend(args[:ncols])
return (names, kwargs, filename)
kwargs = []
colkeys = list(colkeys)
if len(names) > len(args):
raise IOErr('toomanycols')
assert(len(names) <= len(args))
for key in colkeys:
if key not in names:
raise IOErr('reqcol', key, numpy.asarray(names, numpy.string_))
kwargs.append(args[names.index(key)])
_check_args(len(kwargs), dstype)
return (colkeys, kwargs, filename)
def _require_key(hdu, name, fix_type=False, dtype=SherpaFloat):
key = _try_key(hdu, name, fix_type, dtype)
if key is None:
raise IOErr('nokeyword', hdu._file.name, name)
return key
Throws an exception if there aren't any.
"""
if blockname is None:
for hdu in tbl:
if isinstance(hdu, fits.BinTableHDU):
return hdu
else:
blockname = str(blockname).strip().lower()
for hdu in tbl:
if hdu.name.lower() == blockname or \
isinstance(hdu, fits.BinTableHDU):
return hdu
raise IOErr('badext', filename)
def _require_tbl_col(crate, colname, cnames, make_copy=False,
fix_type=False, dtype=SherpaFloat):
"""
checked for new crates
"""
name = str(colname).strip()
if not crate.column_exists(name):
raise IOErr('reqcol', name, cnames)
# data = pycrates.get_colvals(crate, name)
col = crate.get_column(name)
if make_copy:
# Make a copy if a filename passed in
data = numpy.array(col.values)
else:
# Use a reference if a crate passed in
data = numpy.asarray(col.values)
if fix_type:
data = data.astype(dtype)
return numpy.column_stack(data)
def _require_key(crate, name, key, dtype=str):
"""
checked for new crates
"""
key = _try_key(crate, key, dtype)
if key is None:
raise IOErr('nokeyword', crate.get_filename(), name)
return key
# pycrates.is_pha(rmfdataset) == 1):
# raise IOErr('badfile', arg, "RMFCrateDataset obj")
if pycrates.is_rmf(rmfdataset) != 1:
raise IOErr('badfile', arg, "RMFCrateDataset obj")
filename = arg
close_dataset = True
elif pycrates.is_rmf(arg) == 1:
rmfdataset = arg
filename = arg.get_filename()
make_copy = False
else:
raise IOErr('badfile', arg, "RMFCrateDataset obj")
# Open the response matrix by extension name, and try using
# some of the many, many ways people break the OGIP definition
# of the extension name for the response matrix.
rmf = _get_crate_by_blockname(rmfdataset, 'MATRIX')
if rmf is None:
rmf = _get_crate_by_blockname(rmfdataset, 'SPECRESP MATRIX')
if rmf is None:
rmf = _get_crate_by_blockname(rmfdataset, 'AXAF_RMF')
if rmf is None:
rmf = _get_crate_by_blockname(rmfdataset, 'RSP_MATRIX')
if rmf is None:
def _pack_image(dataset):
if not(isinstance(dataset, Data2D) or
isinstance(dataset, DataIMG)):
raise IOErr('notimage', dataset.name)
data = {}
header = {}
if hasattr(dataset, 'header') and type(dataset.header) is dict:
header = dataset.header.copy()
data['pixels'] = numpy.asarray(dataset.get_img())
data['sky'] = getattr(dataset, 'sky', None)
data['eqpos'] = getattr(dataset, 'eqpos', None)
return data, header
if rmf is None:
rmf = _get_crate_by_blockname(rmfdataset, 'RSP_MATRIX')
if rmf is None:
try:
rmf = rmfdataset.get_crate(2)
except IndexError:
rmf = None
if rmf is None or rmf.get_colnames() is None:
raise IOErr('filenotfound', arg)
data = {}
if not rmf.column_exists('ENERG_LO'):
raise IOErr('reqcol', 'ENERG_LO', filename)
if not rmf.column_exists('ENERG_HI'):
raise IOErr('reqcol', 'ENERG_HI', filename)
# FIXME: this will be a problem now that we have
# to pass the name of the matrix column
if not rmf.column_exists('MATRIX'):
raise IOErr('reqcol', 'MATRIX', filename)
if not rmf.column_exists('N_GRP'):
raise IOErr('reqcol', 'N_GRP', filename)
if not rmf.column_exists('F_CHAN'):
raise IOErr('reqcol', 'F_CHAN', filename)
if ncols != 1:
_check_args(ncols, dstype)
kwargs.extend(args[:ncols])
return (names, kwargs, filename)
kwargs = []
colkeys = list(colkeys)
if len(names) > len(args):
raise IOErr('toomanycols')
assert(len(names) <= len(args))
for key in colkeys:
if key not in names:
raise IOErr('reqcol', key, numpy.asarray(names, numpy.string_))
kwargs.append(args[names.index(key)])
_check_args(len(kwargs), dstype)
return (colkeys, kwargs, filename)
def get_image_data(arg, make_copy=True, fix_type=True):
"""
get_image_data ( filename [, make_copy=True, fix_type=True ])
get_image_data ( IMAGECrate [, make_copy=True, fix_type=True ])
"""
filename = ''
close_dataset = False
if type(arg) == str:
img = open_crate(arg)
if not isinstance(img, pycrates.IMAGECrate):
# ??????????????????????????????????######## dtn
close_crate_dataset(img.get_dataset())
# ??????????????????????????????????######## dtn
raise IOErr('badfile', arg, "IMAGECrate obj")
filename = arg
close_dataset = True
elif isinstance(arg, pycrates.IMAGECrate):
img = arg
filename = arg.get_filename()
make_copy = False
else:
raise IOErr('badfile', arg, "IMAGECrate obj")
data = {}
data['y'] = _require_image(img, make_copy, fix_type)