Python astropy.units.kpc() Examples
The following are 30
code examples of astropy.units.kpc().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
astropy.units
, or try the search function
.
Example #1
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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)
Example #2
Source File: map_base.py From dustmaps with GNU General Public License v2.0 | 6 votes |
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
Example #3
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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)
Example #4
Source File: test_bayestar.py From dustmaps with GNU General Public License v2.0 | 6 votes |
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)
Example #5
Source File: test_bayestar.py From dustmaps with GNU General Public License v2.0 | 6 votes |
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)
Example #6
Source File: test_bayestar.py From dustmaps with GNU General Public License v2.0 | 6 votes |
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)
Example #7
Source File: test_bayestar.py From dustmaps with GNU General Public License v2.0 | 6 votes |
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] )
Example #8
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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.
Example #9
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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)
Example #10
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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)
Example #11
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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)
Example #12
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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)
Example #13
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
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
Example #14
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_reprobj(self): s1 = CylindricalRepresentation(rho=1 * u.kpc, phi=2 * u.deg, z=3 * u.kpc) s2 = CylindricalRepresentation.from_representation(s1) assert s2.rho == 1 * u.kpc assert s2.phi == 2 * u.deg assert s2.z == 3 * u.kpc
Example #15
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init_one_array(self): s1 = CartesianRepresentation(x=[1, 2, 3] * u.pc) assert s1.x.unit is u.pc assert s1.y.unit is u.pc assert s1.z.unit is u.pc assert_allclose(s1.x.value, 1) assert_allclose(s1.y.value, 2) assert_allclose(s1.z.value, 3) r = np.arange(27.).reshape(3, 3, 3) * u.kpc s2 = CartesianRepresentation(r, xyz_axis=0) assert s2.shape == (3, 3) assert s2.x.unit == u.kpc assert np.all(s2.x == r[0]) assert np.all(s2.xyz == r) assert np.all(s2.get_xyz(xyz_axis=0) == r) s3 = CartesianRepresentation(r, xyz_axis=1) assert s3.shape == (3, 3) assert np.all(s3.x == r[:, 0]) assert np.all(s3.y == r[:, 1]) assert np.all(s3.z == r[:, 2]) assert np.all(s3.get_xyz(xyz_axis=1) == r) s4 = CartesianRepresentation(r, xyz_axis=2) assert s4.shape == (3, 3) assert np.all(s4.x == r[:, :, 0]) assert np.all(s4.get_xyz(xyz_axis=2) == r) s5 = CartesianRepresentation(r, unit=u.pc) assert s5.x.unit == u.pc assert np.all(s5.xyz == r) s6 = CartesianRepresentation(r.value, unit=u.pc, xyz_axis=2) assert s6.x.unit == u.pc assert np.all(s6.get_xyz(xyz_axis=2).value == r.value)
Example #16
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init_array(self): s1 = CartesianRepresentation(x=[1, 2, 3] * u.pc, y=[2, 3, 4] * u.Mpc, z=[3, 4, 5] * u.kpc) assert s1.x.unit is u.pc assert s1.y.unit is u.Mpc assert s1.z.unit is u.kpc assert_allclose(s1.x.value, [1, 2, 3]) assert_allclose(s1.y.value, [2, 3, 4]) assert_allclose(s1.z.value, [3, 4, 5])
Example #17
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_getitem_scalar(self): s = PhysicsSphericalRepresentation(phi=1 * u.deg, theta=2 * u.deg, r=3 * u.kpc) with pytest.raises(TypeError): s_slc = s[0]
Example #18
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init_singleunit(self): s1 = CartesianRepresentation(x=1, y=2, z=3, unit=u.kpc) assert s1.x.unit is u.kpc assert s1.y.unit is u.kpc assert s1.z.unit is u.kpc assert_allclose(s1.x.value, 1) assert_allclose(s1.y.value, 2) assert_allclose(s1.z.value, 3)
Example #19
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_readonly(self): s1 = PhysicsSphericalRepresentation(phi=[8, 9] * u.hourangle, theta=[5, 6] * u.deg, r=[10, 20] * u.kpc) with pytest.raises(AttributeError): s1.phi = 1. * u.deg with pytest.raises(AttributeError): s1.theta = 1. * u.deg with pytest.raises(AttributeError): s1.r = 1. * u.kpc
Example #20
Source File: test_bayestar.py From dustmaps with GNU General Public License v2.0 | 5 votes |
def test_equ_med_far_scalar(self): """ Test that median reddening is correct in the far limit, using a single location on the sky at a time as input. """ for d in self._test_data: c = self._get_gal(d, dist=1.e3*units.kpc) # print d['samples'] ebv_data = np.nanmedian(d['samples'][:,-1]) ebv_calc = self._bayestar(c, mode='median') # print 'ebv_data:', ebv_data # print 'ebv_calc:', ebv_calc # print '' # print r'% residual: {:.6f}'.format((ebv_calc - ebv_data) / (0.001 + 0.001 * ebv_data)) np.testing.assert_allclose(ebv_data, ebv_calc, atol=0.001, rtol=0.0001)
Example #21
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init_quantity(self): s1 = CartesianRepresentation(x=1 * u.kpc, y=2 * u.kpc, z=3 * u.kpc) assert s1.x.unit is u.kpc assert s1.y.unit is u.kpc assert s1.z.unit is u.kpc assert_allclose(s1.x.value, 1) assert_allclose(s1.y.value, 2) assert_allclose(s1.z.value, 3)
Example #22
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_reprobj(self): s1 = CartesianRepresentation(x=1 * u.kpc, y=2 * u.kpc, z=3 * u.kpc) s2 = CartesianRepresentation.from_representation(s1) assert s2.x == 1 * u.kpc assert s2.y == 2 * u.kpc assert s2.z == 3 * u.kpc
Example #23
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_broadcasting(self): s1 = CartesianRepresentation(x=[1, 2] * u.kpc, y=[3, 4] * u.kpc, z=5 * u.kpc) assert s1.x.unit == u.kpc assert s1.y.unit == u.kpc assert s1.z.unit == u.kpc assert_allclose(s1.x.value, [1, 2]) assert_allclose(s1.y.value, [3, 4]) assert_allclose(s1.z.value, [5, 5])
Example #24
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_broadcasting_mismatch(self): with pytest.raises(ValueError) as exc: s1 = CartesianRepresentation(x=[1, 2] * u.kpc, y=[3, 4] * u.kpc, z=[5, 6, 7] * u.kpc) assert exc.value.args[0] == "Input parameters x, y, and z cannot be broadcast"
Example #25
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_readonly(self): s1 = CartesianRepresentation(x=1 * u.kpc, y=2 * u.kpc, z=3 * u.kpc) with pytest.raises(AttributeError): s1.x = 1. * u.kpc with pytest.raises(AttributeError): s1.y = 1. * u.kpc with pytest.raises(AttributeError): s1.z = 1. * u.kpc
Example #26
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_transform(self): s1 = CartesianRepresentation(x=[1, 2] * u.kpc, y=[3, 4] * u.kpc, z=[5, 6] * u.kpc) matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) s2 = s1.transform(matrix) assert_allclose(s2.x.value, [1 * 1 + 2 * 3 + 3 * 5, 1 * 2 + 2 * 4 + 3 * 6]) assert_allclose(s2.y.value, [4 * 1 + 5 * 3 + 6 * 5, 4 * 2 + 5 * 4 + 6 * 6]) assert_allclose(s2.z.value, [7 * 1 + 8 * 3 + 9 * 5, 7 * 2 + 8 * 4 + 9 * 6]) assert s2.x.unit is u.kpc assert s2.y.unit is u.kpc assert s2.z.unit is u.kpc
Example #27
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init_quantity(self): s1 = CylindricalRepresentation(rho=1 * u.kpc, phi=2 * u.deg, z=3 * u.kpc) assert s1.rho.unit is u.kpc assert s1.phi.unit is u.deg assert s1.z.unit is u.kpc assert_allclose(s1.rho.value, 1) assert_allclose(s1.phi.value, 2) assert_allclose(s1.z.value, 3)
Example #28
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init_array(self): s1 = CylindricalRepresentation(rho=[1, 2, 3] * u.pc, phi=[2, 3, 4] * u.deg, z=[3, 4, 5] * u.kpc) assert s1.rho.unit is u.pc assert s1.phi.unit is u.deg assert s1.z.unit is u.kpc assert_allclose(s1.rho.value, [1, 2, 3]) assert_allclose(s1.phi.value, [2, 3, 4]) assert_allclose(s1.z.value, [3, 4, 5])
Example #29
Source File: test_representation.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init_array_nocopy(self): rho = [8, 9, 10] * u.pc phi = [5, 6, 7] * u.deg z = [2, 3, 4] * u.kpc s1 = CylindricalRepresentation(rho=rho, phi=phi, z=z, copy=False) rho[:] = [9, 2, 3] * u.kpc phi[:] = [1, 2, 3] * u.arcmin z[:] = [-2, 3, 8] * u.kpc assert_allclose_quantity(rho, s1.rho) assert_allclose_quantity(phi, s1.phi) assert_allclose_quantity(z, s1.z)
Example #30
Source File: map_base.py From dustmaps with GNU General Public License v2.0 | 5 votes |
def gal_to_shape(gal, shape): l = np.reshape(gal.l.deg, shape)*units.deg b = np.reshape(gal.b.deg, shape)*units.deg has_dist = hasattr(gal.distance, 'kpc') d = np.reshape(gal.distance.kpc, shape)*units.kpc if has_dist else None return coordinates.SkyCoord(l, b, distance=d, frame='galactic')