本文整理汇总了Python中astropy.units.g方法的典型用法代码示例。如果您正苦于以下问题:Python units.g方法的具体用法?Python units.g怎么用?Python units.g使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类astropy.units
的用法示例。
在下文中一共展示了units.g方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: gammaw_approx
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def gammaw_approx(self, f, P, rho, T):
rp = P / 1013
rt = 288 / (T)
eta1 = 0.955 * rp * rt**0.68 + 0.006 * rho
eta2 = 0.735 * rp * rt**0.50 + 0.0353 * rt**4 * rho
def g(f, fi): return 1 + ((f - fi) / (f + fi))**2
gammaw = (
(3.98 * eta1 * np.exp(2.23 * (1 - rt))) /
((f - 22.235) ** 2 + 9.42 * eta1 ** 2) * g(f, 22.0) +
(11.96 * eta1 * np.exp(0.70 * (1 - rt))) /
((f - 183.310) ** 2 + 11.14 * eta1 ** 2) +
(0.081 * eta1 * np.exp(6.44 * (1 - rt))) /
((f - 321.226) ** 2 + 6.29 * eta1 ** 2) +
(3.660 * eta1 * np.exp(1.60 * (1 - rt))) /
((f - 325.153) ** 2 + 9.22 * eta1 ** 2) +
(25.37 * eta1 * np.exp(1.09 * (1 - rt))) / ((f - 380.000) ** 2) +
(17.40 * eta1 * np.exp(1.46 * (1 - rt))) / ((f - 448.000) ** 2) +
(844.6 * eta1 * np.exp(0.17 * (1 - rt))) / ((f - 557.000) ** 2) *
g(f, 557.0) + (290.0 * eta1 * np.exp(0.41 * (1 - rt))) /
((f - 752.000) ** 2) * g(f, 752.0) +
(8.3328e4 * eta2 * np.exp(0.99 * (1 - rt))) /
((f - 1780.00) ** 2) *
g(f, 1780.0)) * f ** 2 * rt ** 2.5 * rho * 1e-4
return gammaw
示例2: test_units
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_units():
class WithUnits(Container):
inverse_length = Field(5 / u.m, "foo")
time = Field(1 * u.s, "bar", unit=u.s)
grammage = Field(2 * u.g / u.cm ** 2, "baz", unit=u.g / u.cm ** 2)
c = WithUnits()
with tempfile.NamedTemporaryFile() as f:
with HDF5TableWriter(f.name, "data") as writer:
writer.write("units", c)
with tables.open_file(f.name, "r") as f:
assert f.root.data.units.attrs["inverse_length_UNIT"] == "m-1"
assert f.root.data.units.attrs["time_UNIT"] == "s"
assert f.root.data.units.attrs["grammage_UNIT"] == "cm-2 g"
示例3: lookback_distance
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def lookback_distance(self, z):
"""
The lookback distance is the light travel time distance to a given
redshift. It is simply c * lookback_time. It may be used to calculate
the proper distance between two redshifts, e.g. for the mean free path
to ionizing radiation.
Parameters
----------
z : array_like
Input redshifts. Must be 1D or scalar
Returns
-------
d : `~astropy.units.Quantity`
Lookback distance in Mpc
"""
return (self.lookback_time(z) * const.c).to(u.Mpc)
示例4: _EdS_age
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def _EdS_age(self, z):
""" Age of the universe in Gyr at redshift ``z``.
For Omega_radiation = 0 (T_CMB = 0; massless neutrinos)
the age can be directly calculated as an elliptic integral.
See, e.g.,
Thomas and Kantowski, arXiv:0003463
Parameters
----------
z : array_like
Input redshifts.
Returns
-------
t : `~astropy.units.Quantity`
The age of the universe in Gyr at each input redshift.
"""
if isiterable(z):
z = np.asarray(z)
return (2./3) * self._hubble_time * (1+z)**(-3./2)
示例5: test_critical_density
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_critical_density():
from astropy.constants import codata2014
# WMAP7 but with Omega_relativistic = 0
# These tests will fail if astropy.const starts returning non-mks
# units by default; see the comment at the top of core.py.
# critical_density0 is inversely proportional to G.
tcos = core.FlatLambdaCDM(70.4, 0.272, Tcmb0=0.0)
fac = (const.G / codata2014.G).to(u.dimensionless_unscaled).value
assert allclose(tcos.critical_density0 * fac,
9.309668456020899e-30 * (u.g / u.cm**3))
assert allclose(tcos.critical_density0,
tcos.critical_density(0))
assert allclose(
tcos.critical_density([1, 5]) * fac,
[2.70352772e-29, 5.53739080e-28] * (u.g / u.cm**3))
assert allclose(
tcos.critical_density([1., 5.]) * fac,
[2.70352772e-29, 5.53739080e-28] * (u.g / u.cm**3))
示例6: test_units
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_units():
plt.figure()
with quantity_support():
buff = io.BytesIO()
plt.plot([1, 2, 3] * u.m, [3, 4, 5] * u.kg, label='label')
plt.plot([105, 210, 315] * u.cm, [3050, 3025, 3010] * u.g)
plt.legend()
# Also test fill_between, which requires actual conversion to ndarray
# with numpy >=1.10 (#4654).
plt.fill_between([1, 3] * u.m, [3, 5] * u.kg, [3050, 3010] * u.g)
plt.savefig(buff, format='svg')
assert plt.gca().xaxis.get_units() == u.m
assert plt.gca().yaxis.get_units() == u.kg
示例7: test_quantity_subclass
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_quantity_subclass():
"""Check that subclasses are recognized.
This sadly is not done by matplotlib.units itself, though
there is a PR to change it:
https://github.com/matplotlib/matplotlib/pull/13536
"""
plt.figure()
with quantity_support():
plt.scatter(Angle([1, 2, 3], u.deg), [3, 4, 5] * u.kg)
plt.scatter([105, 210, 315] * u.arcsec, [3050, 3025, 3010] * u.g)
plt.plot(Angle([105, 210, 315], u.arcsec), [3050, 3025, 3010] * u.g)
assert plt.gca().xaxis.get_units() == u.deg
assert plt.gca().yaxis.get_units() == u.kg
示例8: test_compose_fractional_powers
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_compose_fractional_powers():
# Warning: with a complicated unit, this test becomes very slow;
# e.g., x = (u.kg / u.s ** 3 * u.au ** 2.5 / u.yr ** 0.5 / u.sr ** 2)
# takes 3 s
x = u.m ** 0.5 / u.yr ** 1.5
factored = x.compose()
for unit in factored:
assert x.decompose() == unit.decompose()
factored = x.compose(units=u.cgs)
for unit in factored:
assert x.decompose() == unit.decompose()
factored = x.compose(units=u.si)
for unit in factored:
assert x.decompose() == unit.decompose()
示例9: test_complex_fractional_rounding_errors
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_complex_fractional_rounding_errors():
# See #3788
kappa = 0.34 * u.cm**2 / u.g
r_0 = 886221439924.7849 * u.cm
q = 1.75
rho_0 = 5e-10 * u.solMass / u.solRad**3
y = 0.5
beta = 0.19047619047619049
a = 0.47619047619047628
m_h = 1e6*u.solMass
t1 = 2 * c.c / (kappa * np.sqrt(np.pi))
t2 = (r_0**-q) / (rho_0 * y * beta * (a * c.G * m_h)**0.5)
result = ((t1 * t2)**-0.8)
assert result.unit.physical_type == 'length'
result.to(u.solRad)
示例10: test_comparison_valid_units
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_comparison_valid_units(self, ufunc):
q_i1 = np.array([-3.3, 2.1, 10.2]) * u.kg / u.s
q_i2 = np.array([10., -5., 1.e6]) * u.g / u.Ms
q_o = ufunc(q_i1, q_i2)
assert not isinstance(q_o, u.Quantity)
assert q_o.dtype == bool
assert np.all(q_o == ufunc(q_i1.value, q_i2.to_value(q_i1.unit)))
q_o2 = ufunc(q_i1 / q_i2, 2.)
assert not isinstance(q_o2, u.Quantity)
assert q_o2.dtype == bool
assert np.all(q_o2 == ufunc((q_i1 / q_i2)
.to_value(u.dimensionless_unscaled), 2.))
# comparison with 0., inf, nan is OK even for dimensional quantities
# (though ignore numpy runtime warnings for comparisons with nan).
with catch_warnings(RuntimeWarning):
for arbitrary_unit_value in (0., np.inf, np.nan):
ufunc(q_i1, arbitrary_unit_value)
ufunc(q_i1, arbitrary_unit_value*np.ones(len(q_i1)))
# and just for completeness
ufunc(q_i1, np.array([0., np.inf, np.nan]))
示例11: test_subclass_conversion
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def test_subclass_conversion(self, flu_unit, tlu_unit, physical_unit):
"""Check various LogUnit subclasses are equivalent and convertible
to each other if they correspond to equivalent physical units."""
values = np.linspace(0., 10., 6)
flu = flu_unit(physical_unit)
tlu = tlu_unit(physical_unit)
assert flu.is_equivalent(tlu)
assert_allclose(flu.to(tlu), flu.function_unit.to(tlu.function_unit))
assert_allclose(flu.to(tlu, values),
values * flu.function_unit.to(tlu.function_unit))
tlu2 = tlu_unit(u.Unit(100.*physical_unit))
assert flu.is_equivalent(tlu2)
# Check that we round-trip.
assert_allclose(flu.to(tlu2, tlu2.to(flu, values)), values, atol=1.e-15)
tlu3 = tlu_unit(physical_unit.to_system(u.si)[0])
assert flu.is_equivalent(tlu3)
assert_allclose(flu.to(tlu3, tlu3.to(flu, values)), values, atol=1.e-15)
tlu4 = tlu_unit(u.g)
assert not flu.is_equivalent(tlu4)
with pytest.raises(u.UnitsError):
flu.to(tlu4, values)
示例12: map_wet_term_radio_refractivity
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def map_wet_term_radio_refractivity(lat, lon, p=50):
"""
Method to determine the wet term of the radio refractivity
Parameters
----------
lat : number, sequence, or numpy.ndarray
Latitudes of the receiver points
lon : number, sequence, or numpy.ndarray
Longitudes of the receiver points
Returns
-------
N_wet: Quantity
Wet term of the radio refractivity (-)
References
----------
[1] The radio refractive index: its formula and refractivity data
https://www.itu.int/rec/R-REC-P.453/en
"""
global __model
type_output = type(lat)
lat = prepare_input_array(lat)
lon = prepare_input_array(lon)
lon = np.mod(lon, 360)
val = __model.map_wet_term_radio_refractivity(lat, lon, p)
return prepare_output_array(val, type_output) * u.g / u.m**3
示例13: zenit_water_vapour_attenuation
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def zenit_water_vapour_attenuation(
self, lat, lon, p, f, V_t=None, h=None):
f_ref = 20.6 # [GHz]
p_ref = 780 # [hPa]
if V_t is None:
V_t = total_water_vapour_content(lat, lon, p, h).value
rho_ref = V_t / 4 # [g/m3]
t_ref = 14 * np.log(0.22 * V_t / 4) + 3 # [Celsius]
gammaw_approx_vect = np.vectorize(self.gammaw_approx)
return (0.0173 * V_t *
gammaw_approx_vect(f, p_ref, rho_ref, t_ref + 273) /
gammaw_approx_vect(f_ref, p_ref, rho_ref, t_ref + 273))
示例14: gamma0_approx
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def gamma0_approx(f, P, rho, T):
"""
Method to estimate the specific attenuation due to dry atmosphere using the
approximate method descibed in Annex 2.
Parameters
----------
f : number or Quantity
Frequency (GHz)
P : number or Quantity
Atmospheric pressure (hPa)
rho : number or Quantity
Water vapor density (g/m3)
T : number or Quantity
Absolute temperature (K)
Returns
-------
gamma_w : Quantity
Dry atmosphere specific attenuation (dB/km)
References
--------
[1] Attenuation by atmospheric gases:
https://www.itu.int/rec/R-REC-P.676/en
"""
global __model
type_output = type(f)
f = prepare_quantity(f, u.GHz, 'Frequency')
P = prepare_quantity(P, u.hPa, 'Atmospheric pressure')
rho = prepare_quantity(rho, u.g / u.m**3, 'Water vapour density')
T = prepare_quantity(T, u.K, 'Temperature')
val = __model.gamma0_approx(f, P, rho, T)
return prepare_output_array(val, type_output) * u.dB / u.km
示例15: gammaw_exact
# 需要导入模块: from astropy import units [as 别名]
# 或者: from astropy.units import g [as 别名]
def gammaw_exact(f, P, rho, T):
"""
Method to estimate the specific attenuation due to water vapour using
the line-by-line method described in Annex 1 of the recommendation.
Parameters
----------
f : number or Quantity
Frequency (GHz)
P : number or Quantity
Atmospheric pressure (hPa)
rho : number or Quantity
Water vapor density (g/m3)
T : number or Quantity
Absolute temperature (K)
Returns
-------
gamma_w : Quantity
Water vapour specific attenuation (dB/km)
References
--------
[1] Attenuation by atmospheric gases:
https://www.itu.int/rec/R-REC-P.676/en
"""
global __model
type_output = type(f)
f = prepare_quantity(f, u.GHz, 'Frequency')
P = prepare_quantity(P, u.hPa, 'Atmospheric pressure ')
rho = prepare_quantity(rho, u.g / u.m**3, 'Water vapour density')
T = prepare_quantity(T, u.K, 'Temperature')
val = __model.gammaw_exact(f, P, rho, T)
return prepare_output_array(val, type_output) * u.dB / u.km