本文整理匯總了Python中astropy.io.fits.ImageHDU方法的典型用法代碼示例。如果您正苦於以下問題:Python fits.ImageHDU方法的具體用法?Python fits.ImageHDU怎麽用?Python fits.ImageHDU使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類astropy.io.fits
的用法示例。
在下文中一共展示了fits.ImageHDU方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _make_aperture_extension
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def _make_aperture_extension(self):
"""Create the aperture mask extension (i.e. extension #2)."""
mask = 3 * np.ones((self.n_rows, self.n_cols), dtype='int32')
hdu = fits.ImageHDU(mask)
# Set the header from the template TPF again
template = self._header_template(2)
for kw in template:
if kw not in ['XTENSION', 'NAXIS1', 'NAXIS2', 'CHECKSUM', 'BITPIX']:
try:
hdu.header[kw] = (self.keywords[kw],
self.keywords.comments[kw])
except KeyError:
hdu.header[kw] = (template[kw],
template.comments[kw])
# Override the defaults where necessary
for keyword in ['CTYPE1', 'CTYPE2', 'CRPIX1', 'CRPIX2', 'CRVAL1', 'CRVAL2', 'CUNIT1',
'CUNIT2', 'CDELT1', 'CDELT2', 'PC1_1', 'PC1_2', 'PC2_1', 'PC2_2']:
hdu.header[keyword] = "" # override wcs keywords
hdu.header['EXTNAME'] = 'APERTURE'
return hdu
示例2: ApertureHDU
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def ApertureHDU(model):
'''
Construct the HDU containing the aperture used to de-trend.
'''
# Get mission cards
cards = model._mission.HDUCards(model.meta, hdu=3)
# Add EVEREST info
cards.append(('COMMENT', '************************'))
cards.append(('COMMENT', '* EVEREST INFO *'))
cards.append(('COMMENT', '************************'))
cards.append(('MISSION', model.mission, 'Mission name'))
cards.append(('VERSION', EVEREST_MAJOR_MINOR, 'EVEREST pipeline version'))
cards.append(('SUBVER', EVEREST_VERSION, 'EVEREST pipeline subversion'))
cards.append(('DATE', strftime('%Y-%m-%d'),
'EVEREST file creation date (YYYY-MM-DD)'))
# Create the HDU
header = pyfits.Header(cards=cards)
hdu = pyfits.ImageHDU(data=model.aperture,
header=header, name='APERTURE MASK')
return hdu
示例3: pack
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def pack(uncompressed_hdulist: fits.HDUList) -> fits.HDUList:
if uncompressed_hdulist[0].data is None:
primary_hdu = fits.PrimaryHDU(header=uncompressed_hdulist[0].header)
hdulist = [primary_hdu]
else:
primary_hdu = fits.PrimaryHDU()
compressed_hdu = fits.CompImageHDU(data=np.ascontiguousarray(uncompressed_hdulist[0].data),
header=uncompressed_hdulist[0].header, quantize_level=64,
dither_seed=2048, quantize_method=1)
hdulist = [primary_hdu, compressed_hdu]
for hdu in uncompressed_hdulist[1:]:
if isinstance(hdu, fits.ImageHDU):
compressed_hdu = fits.CompImageHDU(data=np.ascontiguousarray(hdu.data), header=hdu.header,
quantize_level=64, quantize_method=1)
hdulist.append(compressed_hdu)
else:
hdulist.append(hdu)
return fits.HDUList(hdulist)
示例4: save_single_fits
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def save_single_fits(image, name, key_dict=None, image2=None, image2type=None):
# Save an array into the first extension of a fits file
h0 = fits.PrimaryHDU()
h1 = fits.ImageHDU(image, name='DATA')
if image2 is not None:
h2 = fits.ImageHDU(image2)
if image2type is not None:
h2.header['EXTNAME'] = image2type
# if a keyword dictionary is provided, put the
# keywords into the 0th and 1st extension headers
if key_dict is not None:
for key in key_dict:
h0.header[key] = key_dict[key]
h1.header[key] = key_dict[key]
if image2 is None:
hdulist = fits.HDUList([h0, h1])
else:
hdulist = fits.HDUList([h0, h1, h2])
hdulist.writeto(name, overwrite=True)
示例5: from_tree
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def from_tree(cls, data, ctx):
hdus = []
first = True
for hdu_entry in data:
header = fits.Header([fits.Card(*x) for x in hdu_entry['header']])
data = hdu_entry.get('data')
if data is not None:
try:
data = data.__array__()
except ValueError:
data = None
if first:
hdu = fits.PrimaryHDU(data=data, header=header)
first = False
elif data.dtype.names is not None:
hdu = fits.BinTableHDU(data=data, header=header)
else:
hdu = fits.ImageHDU(data=data, header=header)
hdus.append(hdu)
hdulist = fits.HDUList(hdus)
return hdulist
示例6: test_insert_groupshdu_to_non_empty_list
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_insert_groupshdu_to_non_empty_list(self):
"""Tests inserting a Simple GroupsHDU to an empty HDUList."""
hdul = fits.HDUList()
hdu = fits.PrimaryHDU(np.arange(100, dtype=np.int32))
hdul.insert(0, hdu)
hdu = fits.GroupsHDU()
with pytest.raises(ValueError):
hdul.insert(1, hdu)
info = [(0, 'PRIMARY', 1, 'GroupsHDU', 8, (), '',
'1 Groups 0 Parameters'),
(1, '', 1, 'ImageHDU', 6, (100,), 'int32', '')]
hdul.insert(0, hdu)
assert hdul.info(output=False) == info
hdul.writeto(self.temp('test-insert.fits'))
assert fits.info(self.temp('test-insert.fits'), output=False) == info
示例7: test_insert_image_extension_to_primary_in_non_empty_list
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_insert_image_extension_to_primary_in_non_empty_list(self):
"""
Tests inserting a Simple Image ExtensionHDU to a non-empty HDUList
as the primary HDU.
"""
with fits.open(self.data('tb.fits')) as hdul:
hdu = fits.ImageHDU(np.arange(100, dtype=np.int32))
hdul.insert(0, hdu)
info = [(0, 'PRIMARY', 1, 'PrimaryHDU', 5, (100,), 'int32', ''),
(1, '', 1, 'ImageHDU', 12, (), '', ''),
(2, '', 1, 'BinTableHDU', 24, '2R x 4C', '[1J, 3A, 1E, 1L]', '')]
assert hdul.info(output=False) == info
hdul.writeto(self.temp('test-insert.fits'))
assert fits.info(self.temp('test-insert.fits'), output=False) == info
示例8: test_shallow_copy
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_shallow_copy(self):
"""
Tests that `HDUList.__copy__()` and `HDUList.copy()` return a
shallow copy (regression test for #7211).
"""
n = np.arange(10.0)
primary_hdu = fits.PrimaryHDU(n)
hdu = fits.ImageHDU(n)
hdul = fits.HDUList([primary_hdu, hdu])
for hdulcopy in (hdul.copy(), copy.copy(hdul)):
assert isinstance(hdulcopy, fits.HDUList)
assert hdulcopy is not hdul
assert hdulcopy[0] is hdul[0]
assert hdulcopy[1] is hdul[1]
示例9: test_deep_copy
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_deep_copy(self):
"""
Tests that `HDUList.__deepcopy__()` returns a deep copy.
"""
n = np.arange(10.0)
primary_hdu = fits.PrimaryHDU(n)
hdu = fits.ImageHDU(n)
hdul = fits.HDUList([primary_hdu, hdu])
hdulcopy = copy.deepcopy(hdul)
assert isinstance(hdulcopy, fits.HDUList)
assert hdulcopy is not hdul
for index in range(len(hdul)):
assert hdulcopy[index] is not hdul[index]
assert hdulcopy[index].header == hdul[index].header
np.testing.assert_array_equal(hdulcopy[index].data, hdul[index].data)
示例10: test_new_hdu_extname
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_new_hdu_extname(self):
"""
Tests that new extension HDUs that are added to an HDUList can be
properly indexed by their EXTNAME/EXTVER (regression test for
ticket:48).
"""
with fits.open(self.data('test0.fits')) as f:
hdul = fits.HDUList()
hdul.append(f[0].copy())
hdu = fits.ImageHDU(header=f[1].header)
hdul.append(hdu)
assert hdul[1].header['EXTNAME'] == 'SCI'
assert hdul[1].header['EXTVER'] == 1
assert hdul.index_of(('SCI', 1)) == 1
assert hdul.index_of(hdu) == len(hdul) - 1
示例11: test_extname_in_hdulist
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_extname_in_hdulist(self):
"""
Tests to make sure that the 'in' operator works.
Regression test for https://github.com/astropy/astropy/issues/3060
"""
with fits.open(self.data('o4sp040b0_raw.fits')) as hdulist:
hdulist.append(fits.ImageHDU(name='a'))
assert 'a' in hdulist
assert 'A' in hdulist
assert ('a', 1) in hdulist
assert ('A', 1) in hdulist
assert 'b' not in hdulist
assert ('a', 2) not in hdulist
assert ('b', 1) not in hdulist
assert ('b', 2) not in hdulist
assert hdulist[0] in hdulist
assert fits.ImageHDU() not in hdulist
示例12: test_create_fitshdu_from_filename
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_create_fitshdu_from_filename(self):
"""Regression test on `FitsHDU.fromfile`"""
# Build up a simple test FITS file
a = np.arange(100)
phdu = fits.PrimaryHDU(data=a)
phdu.header['TEST1'] = 'A'
phdu.header['TEST2'] = 'B'
imghdu = fits.ImageHDU(data=a + 1)
phdu.header['TEST3'] = 'C'
phdu.header['TEST4'] = 'D'
hdul = fits.HDUList([phdu, imghdu])
hdul.writeto(self.temp('test.fits'))
fitshdu = fits.FitsHDU.fromfile(self.temp('test.fits'))
hdul2 = fitshdu.hdulist
assert len(hdul2) == 2
assert fits.FITSDiff(hdul, hdul2).identical
示例13: test_fix_invalid_keyword_value
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_fix_invalid_keyword_value(self):
hdu = fits.ImageHDU()
hdu.header['TESTKW'] = 'foo'
errs = hdu.req_cards('TESTKW', None,
lambda v: v == 'foo', 'foo', 'ignore', [])
assert len(errs) == 0
# Now try a test that will fail, and ensure that an error will be
# raised in 'exception' mode
errs = hdu.req_cards('TESTKW', None, lambda v: v == 'bar', 'bar',
'exception', [])
assert len(errs) == 1
assert errs[0][1] == "'TESTKW' card has invalid value 'foo'."
# See if fixing will work
hdu.req_cards('TESTKW', None, lambda v: v == 'bar', 'bar', 'silentfix',
[])
assert hdu.header['TESTKW'] == 'bar'
示例14: test_updated_file_permissions
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_updated_file_permissions(self):
"""
Regression test for https://aeon.stsci.edu/ssb/trac/pyfits/ticket/79
Tests that when a FITS file is modified in update mode, the file
permissions are preserved.
"""
filename = self.temp('test.fits')
hdul = [fits.PrimaryHDU(), fits.ImageHDU()]
hdul = fits.HDUList(hdul)
hdul.writeto(filename)
old_mode = os.stat(filename).st_mode
hdul = fits.open(filename, mode='update')
hdul.insert(1, fits.ImageHDU())
hdul.flush()
hdul.close()
assert old_mode == os.stat(filename).st_mode
示例15: test_header_extend_unique
# 需要導入模塊: from astropy.io import fits [as 別名]
# 或者: from astropy.io.fits import ImageHDU [as 別名]
def test_header_extend_unique(self):
"""
Test extending the header with and without unique=True.
"""
hdu = fits.PrimaryHDU()
hdu2 = fits.ImageHDU()
hdu.header['MYKEY'] = ('some val', 'some comment')
hdu2.header['MYKEY'] = ('some other val', 'some other comment')
hdu.header.extend(hdu2.header)
assert len(hdu.header) == 6
assert hdu.header[-2] == 'some val'
assert hdu.header[-1] == 'some other val'
hdu = fits.PrimaryHDU()
hdu2 = fits.ImageHDU()
hdu.header['MYKEY'] = ('some val', 'some comment')
hdu2.header['MYKEY'] = ('some other val', 'some other comment')
hdu.header.extend(hdu2.header, unique=True)
assert len(hdu.header) == 5
assert hdu.header[-1] == 'some val'