本文整理汇总了Python中astropy.units.kpc方法的典型用法代码示例。如果您正苦于以下问题:Python units.kpc方法的具体用法?Python units.kpc怎么用?Python units.kpc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类astropy.units
的用法示例。
在下文中一共展示了units.kpc方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: query_equ
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def query_equ(self, ra, dec, d=None, frame='icrs', **kwargs):
"""
A web API version of :obj:`DustMap.query_equ()`. See the documentation for
the corresponding local query object. Queries using Equatorial
coordinates. By default, the ICRS frame is used, although other frames
implemented by :obj:`astropy.coordinates` may also be specified.
Args:
ra (:obj:`float`, scalar or array-like): Galactic longitude, in degrees,
or as an :obj:`astropy.unit.Quantity`.
dec (:obj:`float`, scalar or array-like): Galactic latitude, in degrees,
or as an :obj:`astropy.unit.Quantity`.
d (Optional[:obj:`float`, scalar or array-like]): Distance from the Solar
System, in kpc, or as an :obj:`astropy.unit.Quantity`. Defaults to
``None``, meaning no distance is specified.
frame (Optional[icrs]): The coordinate system. Can be 'icrs' (the
default), 'fk5', 'fk4' or 'fk4noeterms'.
**kwargs: Any additional keyword arguments accepted by derived
classes.
Returns:
The results of the query.
"""
pass
示例2: test_equ_med_far_vector
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [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)
示例3: test_equ_samples_scalar
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_equ_samples_scalar(self):
"""
Test that full set of samples of reddening at arbitary distance is
correct. 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='samples')
np.testing.assert_allclose(ebv_data, ebv_calc, atol=0.001, rtol=0.0001)
示例4: test_equ_random_sample_scalar
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [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)
示例5: _interp_ebv
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def _interp_ebv(self, datum, dist):
"""
Calculate samples of E(B-V) at an arbitrary distance (in kpc) for one
test coordinate.
"""
dm = 5. * (np.log10(dist) + 2.)
idx_ceil = np.searchsorted(datum['DM_bin_edges'], dm)
if idx_ceil == 0:
dist_0 = 10.**(datum['DM_bin_edges'][0]/5. - 2.)
return dist/dist_0 * datum['samples'][:,0]
elif idx_ceil == len(datum['DM_bin_edges']):
return datum['samples'][:,-1]
else:
dm_ceil = datum['DM_bin_edges'][idx_ceil]
dm_floor = datum['DM_bin_edges'][idx_ceil-1]
a = (dm_ceil - dm) / (dm_ceil - dm_floor)
return (
(1.-a) * datum['samples'][:,idx_ceil]
+ a * datum['samples'][:,idx_ceil-1]
)
示例6: test_nan_distance
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_nan_distance(self):
""" This is a regression test: calling represent_as() and passing in the
same class as the object shouldn't round-trip through cartesian.
"""
sph = SphericalRepresentation(1*u.deg, 2*u.deg, np.nan*u.kpc)
new_sph = sph.represent_as(SphericalRepresentation)
assert_allclose_quantity(new_sph.lon, sph.lon)
assert_allclose_quantity(new_sph.lat, sph.lat)
dif = SphericalCosLatDifferential(1*u.mas/u.yr, 2*u.mas/u.yr,
3*u.km/u.s)
sph = sph.with_differentials(dif)
new_sph = sph.represent_as(SphericalRepresentation)
assert_allclose_quantity(new_sph.lon, sph.lon)
assert_allclose_quantity(new_sph.lat, sph.lat)
示例7: test_xyz_is_view_if_possible
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_xyz_is_view_if_possible(self):
xyz = np.arange(1., 10.).reshape(3, 3)
s1 = CartesianRepresentation(xyz, unit=u.kpc, copy=False)
s1_xyz = s1.xyz
assert s1_xyz.value[0, 0] == 1.
xyz[0, 0] = 0.
assert s1.x[0] == 0.
assert s1_xyz.value[0, 0] == 0.
# Not possible: we don't check that tuples are from the same array
xyz = np.arange(1., 10.).reshape(3, 3)
s2 = CartesianRepresentation(*xyz, unit=u.kpc, copy=False)
s2_xyz = s2.xyz
assert s2_xyz.value[0, 0] == 1.
xyz[0, 0] = 0.
assert s2.x[0] == 0.
assert s2_xyz.value[0, 0] == 1.
示例8: test_cartesian_physics_spherical_roundtrip
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_cartesian_physics_spherical_roundtrip():
s1 = CartesianRepresentation(x=[1, 2000.] * u.kpc,
y=[3000., 4.] * u.pc,
z=[5., 6000.] * u.pc)
s2 = PhysicsSphericalRepresentation.from_representation(s1)
s3 = CartesianRepresentation.from_representation(s2)
s4 = PhysicsSphericalRepresentation.from_representation(s3)
assert_allclose_quantity(s1.x, s3.x)
assert_allclose_quantity(s1.y, s3.y)
assert_allclose_quantity(s1.z, s3.z)
assert_allclose_quantity(s2.phi, s4.phi)
assert_allclose_quantity(s2.theta, s4.theta)
assert_allclose_quantity(s2.r, s4.r)
示例9: test_spherical_physics_spherical_roundtrip
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_spherical_physics_spherical_roundtrip():
s1 = SphericalRepresentation(lon=3 * u.deg, lat=4 * u.deg, distance=3 * u.kpc)
s2 = PhysicsSphericalRepresentation.from_representation(s1)
s3 = SphericalRepresentation.from_representation(s2)
s4 = PhysicsSphericalRepresentation.from_representation(s3)
assert_allclose_quantity(s1.lon, s3.lon)
assert_allclose_quantity(s1.lat, s3.lat)
assert_allclose_quantity(s1.distance, s3.distance)
assert_allclose_quantity(s2.phi, s4.phi)
assert_allclose_quantity(s2.theta, s4.theta)
assert_allclose_quantity(s2.r, s4.r)
assert_allclose_quantity(s1.lon, s4.phi)
assert_allclose_quantity(s1.lat, 90. * u.deg - s4.theta)
assert_allclose_quantity(s1.distance, s4.r)
示例10: test_cartesian_cylindrical_roundtrip
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_cartesian_cylindrical_roundtrip():
s1 = CartesianRepresentation(x=np.array([1., 2000.]) * u.kpc,
y=np.array([3000., 4.]) * u.pc,
z=np.array([5., 600.]) * u.cm)
s2 = CylindricalRepresentation.from_representation(s1)
s3 = CartesianRepresentation.from_representation(s2)
s4 = CylindricalRepresentation.from_representation(s3)
assert_allclose_quantity(s1.x, s3.x)
assert_allclose_quantity(s1.y, s3.y)
assert_allclose_quantity(s1.z, s3.z)
assert_allclose_quantity(s2.rho, s4.rho)
assert_allclose_quantity(s2.phi, s4.phi)
assert_allclose_quantity(s2.z, s4.z)
示例11: test_init_differential_compatible
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_init_differential_compatible(self):
# TODO: more extensive checking of this
# should fail - representation and differential not compatible
diff = SphericalDifferential(d_lon=1 * u.mas/u.yr,
d_lat=2 * u.mas/u.yr,
d_distance=3 * u.km/u.s)
with pytest.raises(TypeError):
CartesianRepresentation(x=1 * u.kpc, y=2 * u.kpc, z=3 * u.kpc,
differentials=diff)
# should succeed - representation and differential are compatible
diff = SphericalCosLatDifferential(d_lon_coslat=1 * u.mas/u.yr,
d_lat=2 * u.mas/u.yr,
d_distance=3 * u.km/u.s)
r1 = SphericalRepresentation(lon=15*u.deg, lat=21*u.deg,
distance=1*u.pc,
differentials=diff)
示例12: test_init_array_broadcasting
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_init_array_broadcasting(self):
arr1 = np.arange(8).reshape(4, 2) * u.km/u.s
diff = CartesianDifferential(d_x=arr1, d_y=arr1, d_z=arr1)
# shapes aren't compatible
arr2 = np.arange(27).reshape(3, 9) * u.kpc
with pytest.raises(ValueError):
rep = CartesianRepresentation(x=arr2, y=arr2, z=arr2,
differentials=diff)
arr2 = np.arange(8).reshape(4, 2) * u.kpc
rep = CartesianRepresentation(x=arr2, y=arr2, z=arr2,
differentials=diff)
assert rep.x.unit is u.kpc
assert rep.y.unit is u.kpc
assert rep.z.unit is u.kpc
assert len(rep.differentials) == 1
assert rep.differentials['s'] is diff
assert rep.xyz.shape == rep.differentials['s'].d_xyz.shape
示例13: test_transform
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def test_transform(self):
d1 = CartesianDifferential(d_x=[1, 2] * u.km/u.s,
d_y=[3, 4] * u.km/u.s,
d_z=[5, 6] * u.km/u.s)
r1 = CartesianRepresentation(x=[1, 2] * u.kpc,
y=[3, 4] * u.kpc,
z=[5, 6] * u.kpc,
differentials=d1)
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
r2 = r1.transform(matrix)
d2 = r2.differentials['s']
assert_allclose_quantity(d2.d_x, [22., 28]*u.km/u.s)
assert_allclose_quantity(d2.d_y, [49, 64]*u.km/u.s)
assert_allclose_quantity(d2.d_z, [76, 100.]*u.km/u.s)
示例14: main
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [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
示例15: main
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import kpc [as 别名]
def main():
w,h = (2056,1024)
l_0 = 130.
# Set up Bayestar query object
print('Loading bayestar map...')
bayestar = BayestarQuery(max_samples=1)
# 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)
ebv = np.empty(l.shape+(3,), dtype='f8')
for k,d in enumerate([0.5, 1.5, 5.]):
# d = 5. # We'll query integrated reddening to a distance of 5 kpc
coords = SkyCoord(l*u.deg, b*u.deg, d*u.kpc, frame='galactic')
# Get the dust median reddening at each coordinate
print('Querying map...')
ebv[:,:,k] = bayestar.query(coords, mode='median')
ebv[:,:,2] -= ebv[:,:,1]
ebv[:,:,1] -= ebv[:,:,0]
# 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 = 'bayestar.png'
img.save(fname)
return 0