本文整理汇总了Python中astropy.units.deg方法的典型用法代码示例。如果您正苦于以下问题:Python units.deg方法的具体用法?Python units.deg怎么用?Python units.deg使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类astropy.units
的用法示例。
在下文中一共展示了units.deg方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_equ_med_far_vector
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_equ_med_far_vector(self):
"""
Test that median reddening is correct in the far limit, using a vector
of coordinates as input.
"""
l = [d['l']*units.deg for d in self._test_data]
b = [d['b']*units.deg for d in self._test_data]
dist = [1.e3*units.kpc for bb in b]
c = coords.SkyCoord(l, b, distance=dist, frame='galactic')
ebv_data = np.array([np.nanmedian(d['samples'][:,-1]) for d in self._test_data])
ebv_calc = self._bayestar(c, mode='median')
# print 'vector:'
# print r'% residual:'
# for ed,ec in zip(ebv_data, ebv_calc):
# print ' {: >8.3f}'.format((ec - ed) / (0.02 + 0.02 * ed))
np.testing.assert_allclose(ebv_data, ebv_calc, atol=0.001, rtol=0.0001)
示例2: test_equ_med_scalar
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_equ_med_scalar(self):
"""
Test that median reddening is correct in at arbitary distances, using
individual coordinates as input.
"""
for d in self._test_data:
l = d['l']*units.deg
b = d['b']*units.deg
for reps in range(10):
dm = 3. + (25.-3.)*np.random.random()
dist = 10.**(dm/5.-2.)
c = coords.SkyCoord(l, b, distance=dist*units.kpc, frame='galactic')
ebv_samples = self._interp_ebv(d, dist)
ebv_data = np.nanmedian(ebv_samples)
ebv_calc = self._bayestar(c, mode='median')
np.testing.assert_allclose(ebv_data, ebv_calc, atol=0.001, rtol=0.0001)
示例3: test_equ_random_sample_scalar
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_equ_random_sample_scalar(self):
"""
Test that random sample of reddening at arbitary distance is actually
from the set of possible reddening samples at that distance. Uses vector
of coordinates/distances as input. Uses single set of
coordinates/distance as input.
"""
for d in self._test_data:
# Prepare coordinates (with random distances)
l = d['l']*units.deg
b = d['b']*units.deg
dm = 3. + (25.-3.)*np.random.random()
dist = 10.**(dm/5.-2.)
c = coords.SkyCoord(l, b, distance=dist*units.kpc, frame='galactic')
ebv_data = self._interp_ebv(d, dist)
ebv_calc = self._bayestar(c, mode='random_sample')
d_ebv = np.min(np.abs(ebv_data[:] - ebv_calc))
np.testing.assert_allclose(d_ebv, 0., atol=0.001, rtol=0.0001)
示例4: test_equ_samples_nodist_vector
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_equ_samples_nodist_vector(self):
"""
Test that full set of samples of reddening vs. distance curves is
correct. Uses vector of coordinates as input.
"""
# Prepare coordinates
l = [d['l']*units.deg for d in self._test_data]
b = [d['b']*units.deg for d in self._test_data]
c = coords.SkyCoord(l, b, frame='galactic')
ebv_data = np.array([d['samples'] for d in self._test_data])
ebv_calc = self._bayestar(c, mode='samples')
# print 'vector random sample:'
# print 'ebv_data.shape = {}'.format(ebv_data.shape)
# print 'ebv_calc.shape = {}'.format(ebv_calc.shape)
# print ebv_data[0]
# print ebv_calc[0]
np.testing.assert_allclose(ebv_data, ebv_calc, atol=0.001, rtol=0.0001)
示例5: test_equ_random_sample_nodist_vector
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_equ_random_sample_nodist_vector(self):
"""
Test that a random sample of the reddening vs. distance curve is drawn
from the full set of samples. Uses vector of coordinates as input.
"""
# Prepare coordinates
l = [d['l']*units.deg for d in self._test_data]
b = [d['b']*units.deg for d in self._test_data]
c = coords.SkyCoord(l, b, frame='galactic')
ebv_data = np.array([d['samples'] for d in self._test_data])
ebv_calc = self._bayestar(c, mode='random_sample')
# print 'vector random sample:'
# print 'ebv_data.shape = {}'.format(ebv_data.shape)
# print 'ebv_calc.shape = {}'.format(ebv_calc.shape)
# print ebv_data[0]
# print ebv_calc[0]
d_ebv = np.min(np.abs(ebv_data[:,:,:] - ebv_calc[:,None,:]), axis=1)
np.testing.assert_allclose(d_ebv, 0., atol=0.001, rtol=0.0001)
示例6: test_bounds
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_bounds(self):
"""
Test that out-of-bounds coordinates return NaN reddening, and that
in-bounds coordinates do not return NaN reddening.
"""
for mode in (['random_sample', 'random_sample_per_pix',
'median', 'samples', 'mean']):
# Draw random coordinates, both above and below dec = -30 degree line
n_pix = 1000
ra = -180. + 360.*np.random.random(n_pix)
dec = -75. + 90.*np.random.random(n_pix) # 45 degrees above/below
c = coords.SkyCoord(ra, dec, frame='icrs', unit='deg')
ebv_calc = self._bayestar(c, mode=mode)
nan_below = np.isnan(ebv_calc[dec < -35.])
nan_above = np.isnan(ebv_calc[dec > -25.])
pct_nan_above = np.sum(nan_above) / float(nan_above.size)
# print r'{:s}: {:.5f}% nan above dec=-25 deg.'.format(mode, 100.*pct_nan_above)
self.assertTrue(np.all(nan_below))
self.assertTrue(pct_nan_above < 0.05)
示例7: test_shape
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_shape(self):
"""
Test that the output shapes are as expected with input coordinate arrays
of different shapes.
"""
for mode in ['random_sample', 'median', 'mean', 'samples']:
for reps in range(5):
# Draw random coordinates, with different shapes
n_dim = np.random.randint(1,4)
shape = np.random.randint(1,7, size=(n_dim,))
ra = -180. + 360.*np.random.random(shape)
dec = -90. + 180. * np.random.random(shape)
c = coords.SkyCoord(ra, dec, frame='icrs', unit='deg')
ebv_calc = self._bayestar(c, mode=mode)
np.testing.assert_equal(ebv_calc.shape[:n_dim], shape)
if mode == 'samples':
self.assertEqual(len(ebv_calc.shape), n_dim+2) # sample, distance
else:
self.assertEqual(len(ebv_calc.shape), n_dim+1) # distance
示例8: test_shape
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_shape(self):
"""
Test that the output shapes are as expected with input coordinate arrays
of different shapes.
"""
for reps in range(5):
# Draw random coordinates, with different shapes
n_dim = np.random.randint(1,4)
shape = np.random.randint(1,7, size=(n_dim,))
ra = (-180. + 360.*np.random.random(shape)) * units.deg
dec = (-90. + 180. * np.random.random(shape)) * units.deg
c = coords.SkyCoord(ra, dec, frame='icrs')
E = self._planck(c)
np.testing.assert_equal(E.shape, shape)
示例9: test_fEZ
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_fEZ(self):
"""
Test that fEZ returns correct shape and units.
"""
exclude_mods=[]
for mod in self.allmods:
if mod.__name__ in exclude_mods:
continue
if 'fEZ' in mod.__dict__:
obj = mod()
# use 3 planets
d = 10.*np.random.rand(3)*u.AU
I = np.random.uniform(0.0, 180.0, 3)*u.deg
fEZs = obj.fEZ(self.TL.MV[0], I, d)
self.assertEqual(len(fEZs), 3, 'fEZ does not return same number of values as planets tested for {}'.format(mod.__name__))
self.assertEqual(fEZs.unit, self.unit, 'fEZ does not return 1/arcsec**2 for {}'.format(mod.__name__))
示例10: test_pixel_resolution_to_nside
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_pixel_resolution_to_nside():
# Check the different rounding options
nside = pixel_resolution_to_nside(13 * u.arcmin, round='nearest')
assert nside == 256
nside = pixel_resolution_to_nside(13 * u.arcmin, round='up')
assert nside == 512
nside = pixel_resolution_to_nside(13 * u.arcmin, round='down')
assert nside == 256
# Check that it works with arrays
nside = pixel_resolution_to_nside([1e3, 10, 1e-3] * u.deg, round='nearest')
assert_equal(nside, [1, 8, 65536])
with pytest.raises(ValueError) as exc:
pixel_resolution_to_nside(13 * u.arcmin, round='peaches')
assert exc.value.args[0] == "Invalid value for round: 'peaches'"
with pytest.raises(AttributeError) as exc:
pixel_resolution_to_nside(13)
assert exc.value.args[0] == "'int' object has no attribute 'to'"
示例11: test_interpolate_bilinear_invalid
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def test_interpolate_bilinear_invalid():
values = np.ones(133)
with pytest.raises(ValueError) as exc:
interpolate_bilinear_lonlat([1, 3, 4] * u.deg, [3, 2, 6] * u.deg, values)
assert exc.value.args[0] == 'Number of pixels must be divisible by 12'
values = np.ones(192)
with pytest.raises(ValueError) as exc:
interpolate_bilinear_lonlat([1, 3, 4] * u.deg, [3, 2, 6] * u.deg,
values, order='banana')
assert exc.value.args[0] == "order must be 'nested' or 'ring'"
result = interpolate_bilinear_lonlat([0, np.nan] * u.deg,
[0, np.nan] * u.deg, values,
order='nested')
assert result.shape == (2,)
assert result[0] == 1
assert np.isnan(result[1])
示例12: __init__
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def __init__(self, map_fname=None):
"""
Args:
map_fname (Optional[:obj:`str`]): Filename at which the map is stored.
Defaults to ``None``, meaning that the default filename is used.
"""
if map_fname is None:
map_fname = os.path.join(data_dir(), 'marshall', 'marshall.h5')
with h5py.File(map_fname, 'r') as f:
self._l = f['l'][:]
self._b = f['b'][:]
self._A = f['A'][:]
self._sigma_A = f['sigma_A'][:]
self._dist = f['dist'][:]
self._sigma_dist = f['sigma_dist'][:]
# self._l.shape = (self._l.size,)
# self._b.shape = (self._b.size,)
# self._A.shape = (self._A.shape[0], self._A.shape[1]*self._A.shape[2])
# Shape of the (l,b)-grid
self._shape = self._l.shape
# Number of distance bins in each sightline
self._n_dists = np.sum(np.isfinite(self._dist), axis=2)
# idx = ~np.isfinite(self._dist)
# if np.any(idx):
# self._dist[idx] = np.inf
self._l_bounds = (-100., 100.) # min,max Galactic longitude, in deg
self._b_bounds = (-10., 10.) # min,max Galactic latitude, in deg
self._inv_pix_scale = 4. # 1 / (pixel scale, in deg)
示例13: _gal2idx
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def _gal2idx(self, gal):
"""
Converts from Galactic coordinates to pixel indices.
Args:
gal (:obj:`astropy.coordinates.SkyCoord`): Galactic coordinates. Must
store an array of coordinates (i.e., not be scalar).
Returns:
``j, k, mask`` - Pixel indices of the coordinates, as well as a mask
of in-bounds coordinates. Outputs have the same shape as the input
coordinates.
"""
# Make sure that l is in domain [-180 deg, 180 deg)
l = coordinates.Longitude(gal.l, wrap_angle=180.*units.deg)
j = (self._inv_pix_scale * (l.deg - self._l_bounds[0])).astype('i4')
k = (self._inv_pix_scale * (gal.b.deg - self._b_bounds[0])).astype('i4')
idx = (j < 0) | (j >= self._shape[0]) | (k < 0) | (k >= self._shape[1])
if np.any(idx):
j[idx] = -1
k[idx] = -1
return j, k, ~idx
示例14: main
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def main():
w,h = (2056,1024)
l_0 = 0.
# Create a grid of coordinates
print('Creating grid of coordinates...')
l = np.linspace(-180.+l_0, 180.+l_0, 2*w)
b = np.linspace(-90., 90., 2*h+2)
b = b[1:-1]
l,b = np.meshgrid(l, b)
l += (np.random.random(l.shape) - 0.5) * 360./(2.*w)
b += (np.random.random(l.shape) - 0.5) * 180./(2.*h)
coords = SkyCoord(l*u.deg, b*u.deg, frame='galactic')
# Set up BH query object
print('Loading BH map...')
bh = BHQuery()
print('Querying map...')
ebv = bh.query(coords)
# Convert the output array to a PIL image and save
print('Saving image...')
img = numpy2pil(ebv[::-1,::-1], 0., 1.5)
img = img.resize((w,h), resample=PIL.Image.LANCZOS)
fname = 'bh.png'
img.save(fname)
return 0
示例15: main
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import deg [as 别名]
def main():
w,h = (2*2056, 2*int(2056*(20./200.)))
l_0 = 0.
# Set up MarshallQuery object
print('Loading Marshall map...')
query = MarshallQuery()
# Create a grid of coordinates
print('Creating grid of coordinates...')
l = np.linspace(-100.+l_0, 100.+l_0, 2*w)
b = np.linspace(-10., 10., 2*h)
dl = l[1] - l[0]
db = b[1] - b[0]
l,b = np.meshgrid(l, b)
l += (np.random.random(l.shape) - 0.5) * dl
b += (np.random.random(l.shape) - 0.5) * db
A = np.empty(l.shape+(3,), dtype='f8')
for k,d in enumerate([1., 2.5, 5.]):
coords = SkyCoord(l*u.deg, b*u.deg, d*u.kpc, frame='galactic')
# Get the mean dust extinction at each coordinate
print('Querying map...')
A[:,:,k] = query(coords, return_sigma=False)
A[:,:,2] -= A[:,:,1]
A[:,:,1] -= A[:,:,0]
# Convert the output array to a PIL image and save
print('Saving image...')
img = numpy2pil(A[::-1,::-1,:], 0., 1., fill=255)
img = img.resize((w,h), resample=PIL.Image.LANCZOS)
fname = 'marshall.png'
img.save(fname)
return 0