diff --git a/docs/sbpy/photometry.rst b/docs/sbpy/photometry.rst index 2e715b83b..0245c353e 100644 --- a/docs/sbpy/photometry.rst +++ b/docs/sbpy/photometry.rst @@ -65,9 +65,9 @@ Calculate geometric albedo, Bond albedo, and phase integral: >>> solar_fluxd.set({'V': -26.77 * u.mag}) }> >>> print(m.geomalb) # doctest: +FLOAT_CMP - 0.09557298727307795 + 0.09557298727307795 albedo >>> print(m.bondalb) # doctest: +FLOAT_CMP - 0.03482207291799989 + 0.03482207291799989 albedo >>> print(m.phaseint) # doctest: +FLOAT_CMP 0.3643505755292945 diff --git a/docs/sbpy/units.rst b/docs/sbpy/units.rst index 8f86e60e0..1c9166492 100644 --- a/docs/sbpy/units.rst +++ b/docs/sbpy/units.rst @@ -78,7 +78,8 @@ phase angle can be calculated: >>> import numpy as np >>> from astropy import units as u >>> from sbpy.calib import solar_fluxd, vega_fluxd - >>> from sbpy.units import reflectance, VEGAmag, spectral_density_vega + >>> from sbpy.units import (dimensionless_albedo, albedo_unit, VEGAmag, + ... spectral_density_vega) >>> >>> solar_fluxd.set({'V': -26.775 * VEGAmag}) }> @@ -87,19 +88,20 @@ phase angle can be calculated: >>> mag = 3.4 * VEGAmag >>> radius = 460 * u.km >>> cross_sec = np.pi * (radius)**2 - >>> ref = mag.to('1/sr', reflectance('V', cross_section=cross_sec)) + >>> ref = mag.to(albedo_unit, dimensionless_albedo('V', + ... cross_section=cross_sec)) >>> print('{0:.4f}'.format(ref)) - 0.0287 1 / sr + 0.0900 albedo `~sbpy.units.reflectance` works with `sbpy`'s spectral calibration system (see :ref:`sbpy-calib`): >>> from sbpy.photometry import bandpass >>> V = bandpass('Johnson V') - >>> ref = 0.0287 / u.sr - >>> cross_sec = mag.to('km2', reflectance(V, reflectance=ref)) + >>> ref = 0.09 * albedo_unit + >>> cross_sec = mag.to('km2', dimensionless_albedo(V, albedo=ref)) >>> radius = np.sqrt(cross_sec / np.pi) >>> print('{0:.2f}'.format(radius)) - 459.69 km + 460.11 km `~sbpy.units.reflectance` also supports conversion between a flux spectrum and a reflectance spectrum: @@ -107,19 +109,19 @@ phase angle can be calculated: >>> flux = [1.636e-18, 1.157e-18, 8.523e-19, 5.262e-19, 1.9645e-19] \ ... * u.Unit('W/(m2 um)') >>> xsec = 0.0251 * u.km**2 - >>> ref = flux.to('1/sr', reflectance(wave, cross_section=xsec)) + >>> ref = flux.to(albedo_unit, dimensionless_albedo(wave, cross_section=xsec)) >>> print(ref) # doctest: +FLOAT_CMP - [0.0021763 0.00201223 0.0022041 0.00269637 0.00292785] 1 / sr + [0.00683705 0.00632161 0.00692438 0.0084709 0.00919811] albedo -`~sbpy.units.reflectance` also supports dimensionless logarithmic unit for -solar flux, which can be specified with `~sbpy.calib.solar_fluxd.set`: +`~sbpy.units.dimensionless_albedo` also supports dimensionless logarithmic unit +for solar flux, which can be specified with `~sbpy.calib.solar_fluxd.set`: >>> with solar_fluxd.set({'V': -26.77 * u.mag}): ... mag = 3.4 * u.mag - ... ref = mag.to('1/sr', reflectance('V', cross_section = + ... ref = mag.to(albedo_unit, dimensionless_albedo('V', cross_section = ... np.pi*(460*u.km)**2)) >>> print(ref) # doctest: +FLOAT_CMP - 0.028786262941247264 1 / sr + 0.09043471218052651 albedo Projected Sizes --------------- diff --git a/sbpy/photometry/bandpass.py b/sbpy/photometry/bandpass.py index 27d0a3e74..ad18d9b56 100644 --- a/sbpy/photometry/bandpass.py +++ b/sbpy/photometry/bandpass.py @@ -4,13 +4,14 @@ """ +import os +from astropy.utils.data import get_pkg_data_filename + + __all__ = [ 'bandpass' ] -import os -from astropy.utils.data import get_pkg_data_filename - def bandpass(name): """Retrieve bandpass transmission spectrum from sbpy. diff --git a/sbpy/photometry/core.py b/sbpy/photometry/core.py index 4e56d38b4..d498cb94d 100644 --- a/sbpy/photometry/core.py +++ b/sbpy/photometry/core.py @@ -6,9 +6,6 @@ """ -__all__ = ['DiskIntegratedPhaseFunc', 'LinearPhaseFunc', 'HG', 'HG12BaseClass', - 'HG12', 'HG1G2', 'HG12_Pen16', 'NonmonotonicPhaseFunctionWarning'] - from collections import OrderedDict import warnings import numpy as np @@ -20,10 +17,14 @@ from ..data import (Phys, Obs, Ephem, dataclass_input, quantity_to_dataclass) from ..bib import cite -from ..units import reflectance +from ..units import dimensionless_albedo, albedo_unit from ..exceptions import SbpyWarning +__all__ = ['DiskIntegratedPhaseFunc', 'LinearPhaseFunc', 'HG', 'HG12BaseClass', + 'HG12', 'HG1G2', 'HG12_Pen16', 'NonmonotonicPhaseFunctionWarning'] + + class _spline(object): """Cubic spline class @@ -131,9 +132,9 @@ class DiskIntegratedPhaseFunc(Fittable1DModel): ... geomalb = linear_phasefunc.geomalb ... phaseint = linear_phasefunc.phaseint ... bondalb = linear_phasefunc.bondalb - >>> print('Geometric albedo is {0:.3}'.format(geomalb)) + >>> print('Geometric albedo is {0:.3}'.format(geomalb.value)) Geometric albedo is 0.0487 - >>> print('Bond albedo is {0:.3}'.format(bondalb)) + >>> print('Bond albedo is {0:.3}'.format(bondalb.value)) Bond albedo is 0.0179 >>> print('Phase integral is {0:.3}'.format(phaseint)) Phase integral is 0.367 @@ -235,10 +236,7 @@ def _check_unit(self): @property def geomalb(self): """Geometric albedo""" - alb = np.pi*self.to_ref(0.*u.rad) - if hasattr(alb, 'unit') and (alb.unit == 1/u.sr): - alb = alb*u.sr - return alb + return self.to_ref(0. * u.rad) @property def bondalb(self): @@ -375,9 +373,9 @@ def to_phys(self): >>> p.table.pprint(max_width=-1) # doctest: +SKIP targetname diameter H G pv A - km mag - ----------------- -------- ---- ---- ------------------- -------------------- - 1 Ceres (A801 AA) 939.4 3.31 0.12 0.07624470768627523 0.027779803126557152 + km mag albedo albedo + ----------------- -------- ---- ---- ------------------- ------------------- + 1 Ceres (A801 AA) 939.4 3.31 0.12 0.09423445077857852 0.03433437637586201 """ # noqa: E501 cols = {} if (self.meta is not None) and ('targetname' in self.meta.keys()): @@ -611,10 +609,9 @@ def to_mag(self, eph, unit=None, append_results=False, **kwargs): ' size of object is unknown.') if self.wfb is None: raise ValueError('Wavelength/Frequency/Band is unknown.') - out = out.to( - unit, - reflectance(self.wfb, cross_section=np.pi * self.radius**2) - ) + xsec = np.pi * self.radius**2 + out = out.to(unit, + dimensionless_albedo(self.wfb, cross_section=xsec)) dist_corr = self._distance_module(eph) dist_corr = u.Quantity(dist_corr).to(u.mag, u.logarithmic()) out = out - dist_corr @@ -704,10 +701,11 @@ def to_ref(self, eph, normalized=None, append_results=False, **kwargs): ' phase function can be calculated.') if self.wfb is None: raise ValueError('Wavelength/Frequency/Band is unknown.') + xsec = np.pi * self.radius**2 out = out.to( - '1/sr', - reflectance(self.wfb, cross_section=np.pi*self.radius**2) - ) + albedo_unit, + dimensionless_albedo(self.wfb, cross_section=xsec) + ) else: out = out - norm out = out.to('', u.logarithmic()) @@ -773,9 +771,9 @@ class LinearPhaseFunc(DiskIntegratedPhaseFunc): ... geomalb = linear_phasefunc.geomalb ... phaseint = linear_phasefunc.phaseint ... bondalb = linear_phasefunc.bondalb - >>> print('Geometric albedo is {0:.3}'.format(geomalb)) + >>> print('Geometric albedo is {0:.3}'.format(geomalb.value)) Geometric albedo is 0.0487 - >>> print('Bond albedo is {0:.3}'.format(bondalb)) + >>> print('Bond albedo is {0:.3}'.format(bondalb.value)) Bond albedo is 0.0179 >>> print('Phase integral is {0:.3}'.format(phaseint)) Phase integral is 0.367 @@ -817,7 +815,7 @@ class HG(DiskIntegratedPhaseFunc): >>> from sbpy.photometry import HG >>> ceres = HG(3.34 * u.mag, 0.12, radius = 480 * u.km, wfb = 'V') >>> with solar_fluxd.set({'V': -26.77 * u.mag}): - ... print('geometric albedo = {0:.4f}'.format(ceres.geomalb)) + ... print('geometric albedo = {0:.4f}'.format(ceres.geomalb.value)) ... print('phase integral = {0:.4f}'.format(ceres.phaseint)) geometric albedo = 0.0878 phase integral = 0.3644 @@ -988,7 +986,7 @@ class HG1G2(HG12BaseClass): >>> themis = HG1G2(7.063 * u.mag, 0.62, 0.14, radius = 100 * u.km, ... wfb = 'V') >>> with solar_fluxd.set({'V': -26.77 * u.mag}): - ... print('geometric albedo = {0:.4f}'.format(themis.geomalb)) + ... print('geometric albedo = {0:.4f}'.format(themis.geomalb.value)) ... print('phase integral = {0:.4f}'.format(themis.phaseint)) geometric albedo = 0.0656 phase integral = 0.3742 @@ -1082,7 +1080,7 @@ class HG12(HG12BaseClass): >>> from sbpy.photometry import HG12 >>> themis = HG12(7.121 * u.mag, 0.68, radius = 100 * u.km, wfb = 'V') >>> with solar_fluxd.set({'V': -26.77 * u.mag}): - ... print('geometric albedo = {0:.4f}'.format(themis.geomalb)) + ... print('geometric albedo = {0:.4f}'.format(themis.geomalb.value)) ... print('phase integral = {0:.4f}'.format(themis.phaseint)) geometric albedo = 0.0622 phase integral = 0.3949 @@ -1180,7 +1178,7 @@ class HG12_Pen16(HG12): >>> themis = HG12_Pen16(7.121 * u.mag, 0.68, radius = 100 * u.km, ... wfb = 'V') >>> with solar_fluxd.set({'V': -26.77 * u.mag}): - ... print('geometric albedo = {0:.4f}'.format(themis.geomalb)) + ... print('geometric albedo = {0:.4f}'.format(themis.geomalb.value)) ... print('phase integral = {0:.4f}'.format(themis.phaseint)) geometric albedo = 0.0622 phase integral = 0.3804 diff --git a/sbpy/photometry/tests/test_core.py b/sbpy/photometry/tests/test_core.py index 0c22d31b8..fd80103ae 100644 --- a/sbpy/photometry/tests/test_core.py +++ b/sbpy/photometry/tests/test_core.py @@ -7,6 +7,7 @@ from ...calib import solar_fluxd from ..core import * from ...data import Ephem, Phys +from ...units import albedo_unit def setup_module(module): @@ -34,7 +35,7 @@ def evaluate(a, p): def test_ref_phasefunc(self): class ExpPhase(DiskIntegratedPhaseFunc): _unit = 'ref' - p = Parameter(default=0.1 / u.sr) + p = Parameter(default=0.1 * albedo_unit) nu = Parameter(default=0.1 / u.rad) @staticmethod @@ -45,10 +46,9 @@ def evaluate(a, p, nu): pha_test = np.linspace(0, 120, 10) * u.deg ref_test = [0.1, 0.09769976, 0.09545244, 0.0932568, 0.09111168, 0.08901589, 0.08696831, 0.08496784, 0.08301337, - 0.08110387] / u.sr + 0.08110387] * albedo_unit ref = exp_phase(pha_test) - assert np.allclose(ref.value, ref_test.value) - assert ref.unit == ref_test.unit + assert u.allclose(ref, ref_test) ref_n_test = [1.01760649, 0.99419913, 0.97133019, 0.94898729, 0.92715833, 0.90583148, 0.88499521, 0.86463822, 0.84474949, 0.82531824] @@ -64,11 +64,10 @@ def evaluate(a, p, nu): mag = exp_phase.to_mag(1 * u.rad, unit=u.mag) exp_phase.wfb = 'V' mag = exp_phase.to_mag(pha_test, unit=u.mag) - mag_test = [5.36175238, 5.38701861, 5.41228484, 5.43755106, - 5.46281729, 5.48808352, 5.51334975, 5.53861598, 5.56388221, - 5.58914844] * u.mag - assert np.allclose(mag.value, mag_test.value) - assert mag.unit == mag_test.unit + mag_test = [6.60462706, 6.62989329, 6.65515952, 6.68042575, + 6.70569198, 6.7309582, 6.75622443, 6.78149066, + 6.80675689, 6.83202312] * u.mag + assert u.allclose(mag, mag_test) eph_dict = {'alpha': pha_test, 'r': np.repeat(0.8 * u.au, 10), @@ -82,10 +81,10 @@ class TestLinear(): def test_init(self): linphase = LinearPhaseFunc(5 * u.mag, 0.04 * u.mag/u.deg, radius=300 * u.km, wfb='V') - assert np.isclose(linphase.H.value, 5) - assert linphase.H.unit == u.mag - assert np.isclose(linphase.S.value, 0.04) - assert linphase.S.unit == u.mag/u.deg + assert isinstance(linphase.H, Parameter) + assert u.isclose(linphase.H, 5 * u.mag) + assert isinstance(linphase.S, Parameter) + assert u.isclose(linphase.S, 0.04 * u.mag / u.deg) assert linphase.radius == 300 * u.km assert linphase.wfb == 'V' @@ -95,10 +94,8 @@ def test_to_mag(self): pha_test = np.linspace(0, np.pi, 10) * u.rad mag_test = [5., 5.8, 6.6, 7.4, 8.2, 9., 9.8, 10.6, 11.4, 12.2] * u.mag eph = linphase.to_mag(pha_test, append_results=True) - assert np.allclose(eph['mag'].value, mag_test.value) - assert eph['mag'].unit == mag_test.unit - assert np.allclose(eph['alpha'].value, pha_test.value) - assert eph['alpha'].unit == pha_test.unit + assert u.allclose(eph['mag'], mag_test) + assert u.allclose(eph['alpha'], pha_test) assert set(eph.field_names) == {'alpha', 'mag'} eph = linphase.to_mag(eph, append_results=True) assert set(eph.field_names) == {'alpha', 'mag', 'mag1'} @@ -108,14 +105,13 @@ def test_to_ref(self): radius=300 * u.km, wfb='V') pha_test = np.linspace(0, 180, 10) * u.deg eph = linphase.to_ref(pha_test, append_results=True) - ref_test = [1.55045242e-02, 7.42093183e-03, 3.55188129e-03, - 1.70003727e-03, 8.13688994e-04, 3.89456039e-04, - 1.86405380e-04, 8.92192241e-05, 4.27030055e-05, - 2.04389434e-05] / u.sr - ref_norm_test = np.array( - [1., 0.47863009, 0.22908677, 0.10964782, 0.05248075, - 0.02511886, 0.01202264, 0.0057544, 0.00275423, - 0.00131826]) * u.dimensionless_unscaled + ref_test = [4.87088992e-02, 2.33135449e-02, 1.11585642e-02, + 5.34082459e-03, 2.55627937e-03, 1.22351223e-03, + 5.85609771e-04, 2.80290459e-04, 1.34155448e-04, + 6.42108346e-05] * albedo_unit + ref_norm_test = [1., 0.47863009, 0.22908677, 0.10964782, + 0.05248075, 0.02511886, 0.01202264, 0.0057544, + 0.00275423, 0.00131826] * albedo_unit assert u.allclose(eph['ref'], ref_test) assert u.allclose(eph['alpha'], pha_test) assert set(eph.field_names) == {'alpha', 'ref'} @@ -135,8 +131,8 @@ def test_to_ref(self): def test_props(self): linphase = LinearPhaseFunc(5 * u.mag, 2.29 * u.mag/u.rad, radius=300 * u.km, wfb='V') - assert np.isclose(linphase.geomalb, 0.0487089) - assert np.isclose(linphase.bondalb, 0.01790315) + assert u.isclose(linphase.geomalb, 0.0487089 * albedo_unit) + assert u.isclose(linphase.bondalb, 0.01790315 * albedo_unit) assert np.isclose(linphase.phaseint, 0.36755394203990327) def test__distance_module(self): @@ -178,9 +174,9 @@ def test_from_phys(self): phys = Phys.from_sbdb('Ceres') m = HG.from_phys(phys) assert np.all(m.meta['targetname'] == phys['targetname']) - assert np.isclose(m.H.value, phys['H'][0].value) + assert u.isclose(m.H, phys['H'][0]) assert np.isclose(m.G.value, phys['G'][0]) - assert np.isclose(m.radius.value, phys['diameter'].value/2) + assert u.isclose(m.radius, phys['diameter']/2) # test the case when target name is unknown phys.table.remove_column('targetname') m = HG.from_phys(phys) @@ -195,19 +191,16 @@ def test_to_phys(self): p = m.to_phys() assert isinstance(p, Phys) assert set(p.field_names) == {'H', 'G'} - assert np.isclose(p['H'].value, 3.34) - assert p['H'].unit == u.mag + assert u.isclose(p['H'], 3.34 * u.mag) assert np.isclose(p['G'], 0.12) m = HG(3.34 * u.mag, 0.12, radius=480 * u.km, wfb='V', meta={'targetname': '1 Ceres'}) p = m.to_phys() assert isinstance(p, Phys) assert p['targetname'] == '1 Ceres' - assert np.isclose(p['H'].value, 3.34) - assert p['H'].unit == u.mag + assert u.isclose(p['H'], 3.34 * u.mag) assert np.isclose(p['G'], 0.12) - assert np.isclose(p['diameter'].value, 960) - assert p['diameter'].unit == u.km + assert u.isclose(p['diameter'], 960 * u.km) assert np.isclose(p['pv'], 0.0877745) assert np.isclose(p['A'], 0.03198069) @@ -236,8 +229,8 @@ def test__check_unit(self): def test_props(self): ceres = HG(3.34 * u.mag, 0.12, radius=480 * u.km, wfb='V') - assert np.isclose(ceres.geomalb, 0.0877745) - assert np.isclose(ceres.bondalb, 0.03198069) + assert u.isclose(ceres.geomalb, 0.0877745 * albedo_unit) + assert u.isclose(ceres.bondalb, 0.03198069 * albedo_unit) assert np.isclose(ceres.phaseint, 0.3643505755292945) def test_from_obs(self): @@ -256,25 +249,20 @@ def test_from_obs(self): # test fit with one column m = HG.from_obs({'alpha': pha, 'mag': data}, fitter) assert isinstance(m, HG) - assert isinstance(m.H, Parameter) & np.isclose( - m.H.value, 3.436677) & (m.H.unit == u.mag) - assert isinstance(m.G, Parameter) & np.isclose( - m.G.value, 0.1857588) & (m.G.unit == u.dimensionless_unscaled) + assert isinstance(m.H, Parameter) & u.isclose(m.H, 3.436677 * u.mag) + assert isinstance(m.G, Parameter) & u.isclose(m.G, 0.1857588) # test fit with one column and `init` parameters m = HG.from_obs({'alpha': pha, 'mag': data}, fitter, init=[3, 0.1]) assert isinstance(m, HG) - assert isinstance(m.H, Parameter) & np.isclose( - m.H.value, 3.4366849) & (m.H.unit == u.mag) - assert isinstance(m.G, Parameter) & np.isclose( - m.G.value, 0.18576319) & (m.G.unit == u.dimensionless_unscaled) + assert isinstance(m.H, Parameter) & u.isclose(m.H, 3.4366849 * u.mag) + assert isinstance(m.G, Parameter) & u.isclose(m.G, 0.18576319) # test fit with more than one column m = HG.from_obs({'alpha': pha, 'mag': data, 'mag1': data, 'mag2': data}, fitter, fields=['mag', 'mag1', 'mag2']) assert isinstance(m, HG) - assert isinstance(m.H, Parameter) & np.allclose( - m.H.value, [3.436677]*3) & (m.H.unit == u.mag) - assert isinstance(m.G, Parameter) & np.allclose( - m.G.value, [0.1857588]*3) & (m.G.unit == u.dimensionless_unscaled) + assert isinstance(m.H, Parameter) \ + & u.allclose(m.H, [3.436677] * 3 * u.mag) + assert isinstance(m.G, Parameter) & u.allclose(m.G, [0.1857588] * 3) assert 'fields' in m.meta assert m.meta['fields'] == ['mag', 'mag1', 'mag2'] # test fit with more than one column with `init` parameters @@ -282,10 +270,9 @@ def test_from_obs(self): 'mag2': data}, fitter, fields=['mag', 'mag1', 'mag2'], init=[[3., 3., 3.], [0.1, 0.1, 0.1]]) assert isinstance(m, HG) - assert isinstance(m.H, Parameter) & np.allclose( - m.H.value, [3.4366849]*3) & (m.H.unit == u.mag) - assert isinstance(m.G, Parameter) & np.allclose( - m.G.value, [0.18576319]*3) & (m.G.unit == u.dimensionless_unscaled) + assert isinstance(m.H, Parameter) \ + & u.allclose(m.H, [3.4366849] * 3 * u.mag) + assert isinstance(m.G, Parameter) & u.allclose(m.G, [0.18576319] * 3) assert 'fields' in m.meta assert m.meta['fields'] == ['mag', 'mag1', 'mag2'] @@ -321,12 +308,13 @@ def test_to_ref(self): 'r': np.repeat(2.7*u.au, 10), 'delta': np.repeat(1.8*u.au, 10)} eph_test = Ephem.from_dict(eph_dict) - ref1_test = [2.79394901e-02, 1.14014480e-02, 6.86111195e-03, - 4.26478439e-03, 2.56294353e-03, 1.39916471e-03, - 6.32141181e-04, 1.98694761e-04, 3.03518927e-05, - 5.78010611e-07] / u.sr + ref1_test = [8.77744970e-02, 3.58187053e-02, 2.15548189e-02, + 1.33982153e-02, 8.05172457e-03, 4.39560559e-03, + 1.98593009e-03, 6.24218000e-04, 9.53532832e-05, + 1.81587389e-06] * albedo_unit eph1 = ceres.to_ref(eph_test, append_results=True) assert set(eph1.field_names) == {'alpha', 'delta', 'ref', 'r'} + print(eph1['ref']) assert u.allclose(eph1['ref'], ref1_test) pha_test = np.linspace(0, np.pi*0.9, 10) * u.rad ref2_norm_test = np.array( @@ -360,11 +348,11 @@ def test_init(self): assert themis._unit == 'mag' assert u.isclose(themis.radius, 100 * u.km) assert isinstance(themis.H, Parameter) - assert np.isclose(themis.H.value, 7.063) + assert u.isclose(themis.H, 7.063 * u.mag) assert isinstance(themis.G1, Parameter) - assert np.isclose(themis.G1.value, 0.62) + assert u.isclose(themis.G1, 0.62) assert isinstance(themis.G2, Parameter) - assert np.isclose(themis.G2.value, 0.14) + assert u.isclose(themis.G2, 0.14) assert themis.wfb == 'V' @pytest.mark.remote_data @@ -410,8 +398,8 @@ def test_fit_deriv(self): def test_props(self): themis = HG1G2(7.063 * u.mag, 0.62, 0.14, radius=100 * u.km, wfb='V') - assert np.isclose(themis.geomalb, 0.06556179) - assert np.isclose(themis.bondalb, 0.02453008) + assert u.isclose(themis.geomalb, 0.06556179 * albedo_unit) + assert u.isclose(themis.bondalb, 0.02453008 * albedo_unit) assert np.isclose(themis.phaseint, 0.374152) def test_from_obs(self): @@ -429,16 +417,13 @@ def test_from_obs(self): fitter = LevMarLSQFitter() m = HG1G2.from_obs({'alpha': pha, 'mag': data}, fitter) assert isinstance(m, HG1G2) - assert isinstance(m.H, Parameter) & np.isclose( - m.H.value, 7.1167) & (m.H.unit == u.mag) - assert isinstance(m.G1, Parameter) & np.isclose( - m.G1.value, 0.63922) & (m.G1.unit == u.dimensionless_unscaled) - assert isinstance(m.G2, Parameter) & np.isclose( - m.G2.value, 0.17262569) & (m.G2.unit == u.dimensionless_unscaled) + assert isinstance(m.H, Parameter) & u.isclose(m.H, 7.1167 * u.mag) + assert isinstance(m.G1, Parameter) & u.isclose(m.G1, 0.63922) + assert isinstance(m.G2, Parameter) & u.isclose(m.G2, 0.17262569) def test_to_mag(self): themis = HG1G2(7.063 * u.mag, 0.62, 0.14, radius=100 * u.km, wfb='V') - pha_test = np.linspace(0, np.pi, 10)*u.rad + pha_test = np.linspace(0, np.pi, 10) * u.rad mag_test = [7.063, 8.07436233, 8.68048572, 9.29834638, 9.96574599, 10.72080704, 11.52317465, 12.15094612, 18.65369516, 18.65389398] * u.mag @@ -447,10 +432,10 @@ def test_to_mag(self): def test_to_ref(self): themis = HG1G2(7.063 * u.mag, 0.62, 0.14, radius=100 * u.km, wfb='V') pha_test = np.linspace(0, np.pi, 10)*u.rad - ref_test = [2.08689669e-02, 8.22159390e-03, 4.70442623e-03, - 2.66294623e-03, 1.44013284e-03, 7.18419542e-04, - 3.43108196e-04, 1.92452033e-04, 4.82195204e-07, - 4.82106912e-07] / u.sr + ref_test = [6.55617931e-02, 2.58288990e-02, 1.47793909e-02, + 8.36589231e-03, 4.52431075e-03, 2.25698156e-03, + 1.07790619e-03, 6.04605893e-04, 1.51486091e-06, + 1.51458353e-06] * albedo_unit assert u.allclose(themis.to_ref(pha_test), ref_test) def test_g1g2_validator(self): @@ -466,9 +451,9 @@ def test_init(self): assert themis._unit == 'mag' assert u.isclose(themis.radius, 100 * u.km) assert isinstance(themis.H, Parameter) - assert np.isclose(themis.H.value, 7.121) + assert u.isclose(themis.H, 7.121 * u.mag) assert isinstance(themis.G12, Parameter) - assert np.isclose(themis.G12.value, 0.68) + assert u.isclose(themis.G12, 0.68) assert themis.wfb == 'V' def test__G1_G2(self): @@ -508,8 +493,8 @@ def test_fit_deriv(self): def test_props(self): themis = HG12(7.121 * u.mag, 0.68, radius=100 * u.km, wfb='V') - assert np.isclose(themis.geomalb, 0.06215139) - assert np.isclose(themis.bondalb, 0.02454096) + assert u.isclose(themis.geomalb, 0.06215139 * albedo_unit) + assert u.isclose(themis.bondalb, 0.02454096 * albedo_unit) assert np.isclose(themis.phaseint, 0.3948577512) assert np.isclose(themis.phasecoeff, -1.6777182566684201) assert np.isclose(themis.oe_amp, 0.23412300750840437) @@ -529,10 +514,8 @@ def test_from_obs(self): fitter = LevMarLSQFitter() m = HG12.from_obs({'alpha': pha, 'mag': data}, fitter) assert isinstance(m, HG12) - assert isinstance(m.H, Parameter) & np.isclose( - m.H.value, 7.13939) & (m.H.unit == u.mag) - assert isinstance(m.G12, Parameter) & np.isclose( - m.G12.value, 0.44872) & (m.G12.unit == u.dimensionless_unscaled) + assert isinstance(m.H, Parameter) & u.isclose(m.H, 7.13939 * u.mag) + assert isinstance(m.G12, Parameter) & u.isclose(m.G12, 0.44872) def test_to_mag(self): pha_test = np.linspace(0, np.pi, 10) * u.rad @@ -544,10 +527,10 @@ def test_to_mag(self): def test_to_ref(self): pha_test = np.linspace(0, np.pi, 10) * u.rad - ref_test = [1.97834009e-02, 8.23548424e-03, 4.71126618e-03, - 2.66039298e-03, 1.43691333e-03, 7.18378086e-04, - 3.46630119e-04, 1.96703860e-04, 4.59397839e-07, - 4.59313722e-07] / u.sr + ref_test = [6.21513869e-02, 2.58725368e-02, 1.48008792e-02, + 8.35787104e-03, 4.51419636e-03, 2.25685132e-03, + 1.08897064e-03, 6.17963402e-04, 1.44324088e-06, + 1.44297661e-06] * albedo_unit themis = HG12(7.121 * u.mag, 0.68, radius=100 * u.km, wfb='V') assert u.allclose(themis.to_ref(pha_test), ref_test) @@ -568,9 +551,9 @@ def test_init(self): assert themis._unit == 'mag' assert u.isclose(themis.radius, 100*u.km) assert isinstance(themis.H, Parameter) - assert np.isclose(themis.H.value, 7.121) + assert u.isclose(themis.H, 7.121 * u.mag) assert isinstance(themis.G12, Parameter) - assert np.isclose(themis.G12.value, 0.68) + assert u.isclose(themis.G12, 0.68) assert themis.wfb == 'V' def test__G1_G2(self): @@ -604,8 +587,8 @@ def test_fit_deriv(self): def test_props(self): themis = HG12_Pen16(7.121 * u.mag, 0.68, radius=100 * u.km, wfb='V') - assert np.isclose(themis.geomalb, 0.06215139) - assert np.isclose(themis.bondalb, 0.02364406) + assert u.isclose(themis.geomalb, 0.06215139 * albedo_unit) + assert u.isclose(themis.bondalb, 0.02364406 * albedo_unit) assert np.isclose(themis.phaseint, 0.38042683486452) def test_from_obs(self): @@ -623,10 +606,8 @@ def test_from_obs(self): fitter = LevMarLSQFitter() m = HG12_Pen16.from_obs({'alpha': pha, 'mag': data}, fitter) assert isinstance(m, HG12_Pen16) - assert isinstance(m.H, Parameter) & np.isclose( - m.H.value, 7.038705) & (m.H.unit == u.mag) - assert isinstance(m.G12, Parameter) & np.isclose( - m.G12.value, 0.681691) & (m.G12.unit == u.dimensionless_unscaled) + assert isinstance(m.H, Parameter) & u.isclose(m.H, 7.038705 * u.mag) + assert isinstance(m.G12, Parameter) & u.isclose(m.G12, 0.681691) def test_to_mag(self): pha_test = np.linspace(0, np.pi, 10) * u.rad @@ -638,10 +619,10 @@ def test_to_mag(self): def test_to_ref(self): pha_test = np.linspace(0, np.pi, 10) * u.rad - ref_test = [1.97834009e-02, 7.85236516e-03, 4.54188647e-03, - 2.59652934e-03, 1.41153731e-03, 6.97923066e-04, - 3.19213708e-04, 1.69983395e-04, 5.59122499e-07, - 5.59020121e-07] / u.sr + ref_test = [6.21513869e-02, 2.46689327e-02, 1.42687572e-02, + 8.15723750e-03, 4.43447524e-03, 2.19258998e-03, + 1.00283944e-03, 5.34018585e-04, 1.75653514e-06, + 1.75621351e-06] * albedo_unit themis = HG12_Pen16(7.121 * u.mag, 0.68, radius=100 * u.km, wfb='V') assert u.allclose(themis.to_ref(pha_test), ref_test) diff --git a/sbpy/units/core.py b/sbpy/units/core.py index f579863ae..cbbe4b96e 100644 --- a/sbpy/units/core.py +++ b/sbpy/units/core.py @@ -14,18 +14,6 @@ """ -__all__ = [ - 'hundred_nm', - 'spectral_density_vega', - 'enable', - 'VEGA', - 'VEGAmag', - 'JM', - 'JMmag', - 'reflectance', - 'projected_size', -] - from warnings import warn import numpy as np import astropy.units as u @@ -39,6 +27,20 @@ from ..exceptions import OptionalPackageUnavailable, SbpyWarning +__all__ = [ + 'hundred_nm', + 'spectral_density_vega', + 'enable', + 'VEGA', + 'VEGAmag', + 'JM', + 'JMmag', + 'albedo_unit', + 'dimensionless_albedo', + 'projected_size', +] + + VEGA = u.def_unit(['VEGA', 'VEGAflux'], doc='Spectral flux density of Vega.') @@ -59,6 +61,13 @@ doc=('Convenience unit for expressing spectral ' 'gradients.')) +# various reflectance and albedo units +albedo_unit = u.def_unit(['albedo'], represents=u.dimensionless_unscaled, + doc=('Integrated reflectance of a planetary body ' + 'at arbitrary phase angle. Albedo is the ' + 'product of geometric albedo and ' + 'disk-integrated phase function.')) + def enable(): """Enable `sbpy` units in the top-level `astropy.units` namespace. @@ -164,16 +173,33 @@ def spectral_density_vega(wfb): return equiv -@u.quantity_input(cross_section='km2', reflectance='1/sr') -def reflectance(wfb, cross_section=None, reflectance=None, **kwargs): - """Reflectance related equivalencies. +@u.quantity_input(flux=['W / (m2 nm)', 'W / (m2 Hz)', VEGA, u.AB, u.ST], + cross_section='km2', albedo=albedo_unit, rh=u.au, + delta=u.au) +def dimensionless_albedo(wfb, flux=None, cross_section=None, albedo=None, + rh=1*u.au, delta=1*u.au, **kwargs): + """Dimensionless albedo related equivalencies. - Supports conversion from/to reflectance and scattering - cross-section to/from total flux or magnitude at 1 au for both - heliocentric and observer distances. Uses `sbpy`'s photometric - calibration system: `~sbpy.calib.solar_spectrum` and + Supports conversion between disk-integrated albedo, scattering + cross-section, and the total flux or magnitude. Uses `sbpy`'s + photometric calibration system: `~sbpy.calib.solar_spectrum` and `~sbpy.calib.solar_fluxd`. + To perform the conversion, one of the three keywords `flux`, + `cross_section`, or `albedo` must be provided, depending on the units + of the from and to quantities. + + Albedo is defined as the ratio of the disk-integrated brightness + of a solar system planetary body at an arbitrary phase angle to that + of a perfect Lambert disk of the same radius and at the same distance + as the body, but illuminated and observed perpendicularly. + + Based on this definition, albedo is essentially the product of + geometric albedo (pv) and the disk-integrated phase function (Phi(a), + where a is phase angle): + + albedo = pv * Phi(a) + Spectral flux density equivalencies for Vega are automatically used, if possible. Dimensionless logarithmic units are also supported if the corresponding solar value is set by `~sbpy.calib.solar_fluxd.set`. @@ -185,13 +211,21 @@ def reflectance(wfb, cross_section=None, reflectance=None, **kwargs): Wavelength, frequency, or a bandpass corresponding to the flux density being converted. + flux : `astropy.units.Quantity`, `astropy.units.Magnitude`, optional + Total flux or magnitude of a planetary body. + cross_section : `astropy.units.Qauntity`, optional Total scattering cross-section. One of `cross_section` or `reflectance` is required. - reflectance : `astropy.units.Quantity`, optional - Average reflectance. One of `cross_section` or `reflectance` - is required. + albedo : `astropy.units.Quantity`, optional + Albedo as defined earlier + + rh : `astropy.units.Quantity`, optional + Heliocentric distance of the target. + + delta : `astropy.units.Quantity`, optional + Observer distance of the target. **kwargs Keyword arguments for `~Sun.observe()`. @@ -205,37 +239,42 @@ def reflectance(wfb, cross_section=None, reflectance=None, **kwargs): Examples -------- - Convertion between scattering cross-section and reflectance >>> import numpy as np >>> from astropy import units as u - >>> from sbpy.units import reflectance, VEGAmag, spectral_density_vega - >>> from sbpy.calib import solar_fluxd, vega_fluxd + >>> from sbpy.units import dimensionless_albedo + >>> from sbpy.units import VEGAmag, spectral_density_vega, albedo_unit + >>> from sbpy.calib import solar_fluxd >>> >>> solar_fluxd.set({'V': -26.77471503 * VEGAmag}) ... # doctest: +IGNORE_OUTPUT - >>> vega_fluxd.set({'V': 3.5885e-08 * u.Unit('W / (m2 um)')}) - ... # doctest: +IGNORE_OUTPUT + + >>> # calculate albedo from magnitude >>> mag = 3.4 * VEGAmag - >>> cross_sec = np.pi * (460 * u.km)**2 - >>> ref = mag.to('1/sr', reflectance('V', cross_section=cross_sec)) - >>> print('{0:.4f}'.format(ref)) - 0.0287 1 / sr - >>> mag1 = ref.to(VEGAmag, reflectance('V', cross_section=cross_sec)) - >>> print('{0:.2f}'.format(mag1)) - 3.40 mag(VEGA) - - >>> # Convertion between magnitude and scattering cross-section - >>> ref = 0.0287 / u.sr - >>> cross_sec = mag.to('km2', reflectance('V', reflectance=ref)) - >>> radius = np.sqrt(cross_sec/np.pi) + >>> xsec = np.pi * (460 * u.km)**2 + >>> alb = mag.to(albedo_unit, + ... dimensionless_albedo('V', cross_section=xsec)) + >>> print('{0:.4f}'.format(alb)) + 0.0900 albedo + + >>> # calculate size from magnitude + >>> alb = 0.09 * albedo_unit + >>> xsec = mag.to('km2', dimensionless_albedo('V', albedo=alb)) + >>> radius = np.sqrt(xsec/np.pi) >>> print('{0:.2f}'.format(radius)) - 459.69 km - >>> mag2 = cross_sec.to(VEGAmag, reflectance('V', reflectance=ref)) - >>> print('{0:.2f}'.format(mag2)) - 3.40 mag(VEGA) - + 460.11 km + + >>> # calculate albedo from size + >>> radius = 460 * u.km + >>> xsec = np.pi * radius**2 + >>> alb = xsec.to(albedo_unit, dimensionless_albedo('V', flux=mag)) + >>> print('{0:.4f}'.format(alb)) + 0.0900 albedo """ + if [flux, cross_section, albedo].count(None) != 2: + raise ValueError('One and only one of `flux`, `cross_section`, ' + 'or `albedo` should be specified.') + # Solar flux density at 1 au in different units f_sun = [] sun = Sun.from_default() @@ -249,7 +288,8 @@ def reflectance(wfb, cross_section=None, reflectance=None, **kwargs): if len(f_sun) == 0: try: f_sun.append(sun.observe(wfb, **kwargs)) - except (SinglePointSpectrumError, u.UnitConversionError, FilterLookupError): + except (SinglePointSpectrumError, u.UnitConversionError, + FilterLookupError): pass # pass fluxd0 as an optional argument to dereference it, @@ -257,35 +297,39 @@ def reflectance(wfb, cross_section=None, reflectance=None, **kwargs): # the last item in f_sun equiv = [] if cross_section is not None: - xsec = cross_section.to('au2').value + xsec = cross_section.to_value('au2') for fluxd0 in f_sun: if fluxd0.unit in [u.mag, u.dB, u.dex]: equiv.append(( - fluxd0.unit, u.sr**-1, - lambda mag, mag0=fluxd0.value: u.Quantity(mag - mag0, - fluxd0.unit).to('', u.logarithmic()).value / xsec, - lambda ref, mag0=fluxd0.value: u.Quantity(ref * xsec).to( - fluxd0.unit, u.logarithmic()).value + mag0 + fluxd0.unit, albedo_unit, + lambda mag, mag0=fluxd0.value: + u.Quantity(mag - mag0, fluxd0.unit).to_value + ('', u.logarithmic()) / xsec * np.pi, + lambda ref, mag0=fluxd0.value: + u.Quantity(ref * xsec / np.pi).to_value + (fluxd0.unit, u.logarithmic()) + mag0 )) else: equiv.append(( - fluxd0.unit, u.sr**-1, - lambda fluxd, fluxd0=fluxd0.value: fluxd / (fluxd0 * xsec), - lambda ref, fluxd0=fluxd0.value: ref * fluxd0 * xsec + fluxd0.unit, albedo_unit, + lambda fluxd, fluxd0=fluxd0.value: + fluxd / (fluxd0 * xsec / np.pi), + lambda ref, fluxd0=fluxd0.value: + ref * fluxd0 * xsec / np.pi )) - elif reflectance is not None: - ref = reflectance.to('1/sr').value - au2km = (const.au.to('km')**2).value + elif albedo is not None: + ref = albedo.value / np.pi + au2km = const.au.to_value('km')**2 for fluxd0 in f_sun: if fluxd0.unit in [u.mag, u.dB, u.dex]: equiv.append(( fluxd0.unit, u.km**2, - lambda mag, mag0=fluxd0.value: u.Quantity(mag - mag0, - fluxd0.unit).to('', u.logarithmic()).value / ref * - au2km, - lambda xsec, mag0=fluxd0.value: u.Quantity(ref * - xsec / au2km).to(fluxd0.unit, u.logarithmic()).value - + mag0 + lambda mag, mag0=fluxd0.value: + u.Quantity(mag - mag0, fluxd0.unit).to_value + ('', u.logarithmic()) / ref * au2km, + lambda xsec, mag0=fluxd0.value: + u.Quantity(ref * xsec / au2km).to_value + (fluxd0.unit, u.logarithmic()) + mag0 )) else: equiv.append(( @@ -295,6 +339,23 @@ def reflectance(wfb, cross_section=None, reflectance=None, **kwargs): lambda xsec, fluxd0=fluxd0.value: ( fluxd0 * ref * xsec / au2km) )) + elif flux is not None: + au2km = const.au.to_value('km')**2 + try: + f_sun = sun.observe(wfb, unit=flux.unit, **kwargs) + except SinglePointSpectrumError: + f_sun = sun(wfb, unit=unit) + except (u.UnitConversionError, FilterLookupError): + return equiv + if isinstance(flux, u.Magnitude): + f_over_fsun = (flux - f_sun).to_value('', u.logarithmic()) + else: + f_over_fsun = flux / f_sun + equiv.append(( + albedo_unit, u.km**2, + lambda alb: f_over_fsun / alb * au2km * np.pi, + lambda xsec: f_over_fsun / xsec * au2km * np.pi, + )) return equiv diff --git a/sbpy/units/tests/data/hi05070405_9000036-avg-spec.txt b/sbpy/units/tests/data/hi05070405_9000036-avg-spec.txt index c9eff184b..62fa3aca5 100644 --- a/sbpy/units/tests/data/hi05070405_9000036-avg-spec.txt +++ b/sbpy/units/tests/data/hi05070405_9000036-avg-spec.txt @@ -17,512 +17,518 @@ # cross_section = (ifov * delta)**2, wfb = wave # where ifov = 1e-5 radians, delta = 15828 km, rh = 1.5 au # -# units: μm, W/(m2 μm sr), W/(m2 um), W/(m2 Hz), 1/sr - wave spec flux_sun flux_sun_nu ref +# J-Y Li 2022 May 2 +# +# Change the last column from (disk-average) reflectance to disk-integrated +# albedo, which is defined as the product of geometric albedo and +# disk-integrated phase function, and is dimensionless +# +# units: μm, W/(m2 μm sr), W/(m2 um), W/(m2 Hz), None + wave spec flux_sun flux_sun_nu albedo ------------------ -------------------- ------------------ ------------------ ------------------ -1.0461157626959012 0.6496984097619729 661.193998597859 2.41361331e-12 0.00221088126188 -1.0474915075073294 0.6458611938880667 663.247341732319 2.4274809832e-12 0.00219101923945 - 1.048873224774616 0.7349544711475071 663.437712582278 2.4345878493e-12 0.00249254380437 -1.0502609990521303 0.6704751930123687 661.680105822817 2.4345676745e-12 0.00227990711977 - 1.05165491888596 0.6832003201721754 659.215784749754 2.4319431021e-12 0.00233186273137 - 1.053055039072845 0.6636690489173206 656.644590821582 2.4289121619e-12 0.00227406938386 -1.0544611464064566 0.6730602360117014 655.132976637351 2.4297966087e-12 0.00231156968895 -1.0558735617089954 0.6402690060285702 654.965830029385 2.4356886448e-12 0.00219951209287 -1.0572922417354687 0.6613108095237584 648.839054543662 2.4193927267e-12 0.00229324870476 -1.0587173339676437 0.6516651935465718 643.805405369669 2.407099059e-12 0.00227746874017 -1.0601485599089917 0.6813790053291507 642.004469056580 2.4068598583e-12 0.00238799390952 - 1.061586354645098 0.6608176392685714 643.324670939581 2.4183555888e-12 0.00231118089437 -1.0630305736585912 0.6968073514746599 644.885719182378 2.4308242909e-12 0.00243115406991 -1.0644811431409018 0.6830890192839291 644.266701420843 2.4351231404e-12 0.00238558083166 -1.0659383029978715 0.7085391381304351 639.583210029736 2.4240439403e-12 0.00249258116191 -1.0674019186938088 0.6696957024962414 634.024411854796 2.409579364e-12 0.00237658882283 -1.0688723043279118 0.6890747688949312 628.376490065823 2.3946986726e-12 0.00246733965151 -1.0703492337403808 0.6534051337117308 626.006452560735 2.3922640382e-12 0.00234847667278 - 1.071832827868465 0.6470549954960283 631.140879374890 2.4185758746e-12 0.00230673338939 -1.0733232908962602 0.6446524886541226 629.291202825291 2.4181991533e-12 0.00230492352818 -1.0748203215737775 0.6365313931778984 627.765635255118 2.4190707667e-12 0.00228141770466 -1.0763244473414375 0.6014322111213072 627.833930205113 2.4261100085e-12 0.00215538283282 - 1.077835379173512 0.6176701833952326 627.166575004992 2.4303402043e-12 0.00221593109076 -1.0793530399120534 0.6214669341353048 625.479449019646 2.4306329448e-12 0.00223556601899 - 1.08087788565453 0.6156352456064735 618.185058477423 2.4090791222e-12 0.00224071947974 -1.0824096678294015 0.6000153708859466 612.042477017184 2.3919064308e-12 0.00220578576682 -1.0839484995368234 0.6212496668311465 617.354555022832 2.4195313351e-12 0.00226419605881 -1.0854944980432433 0.6080061323607777 619.938878638191 2.4365954199e-12 0.00220669140935 - 1.087047709455241 0.6054717652389316 615.286378092423 2.4252348923e-12 0.00221410959237 -1.0886080340484907 0.6038088988741593 613.327307418644 2.4244580206e-12 0.00221508158211 -1.0901757231127935 0.6072879326153242 618.745897288308 2.4529271067e-12 0.00220833439765 -1.0917507114693743 0.581168053358208 615.136272117670 2.4456685606e-12 0.00212575355954 -1.0933330896356435 0.6016536646077978 595.311495897318 2.3737148712e-12 0.00227397044186 -1.0949228576677552 0.5757618243004833 591.102707505968 2.3637921721e-12 0.00219160577041 -1.0965200715201024 0.5720323613492131 597.537442593697 2.3965008787e-12 0.00215396177928 -1.0981249018261041 0.5526612201279401 597.350818349656 2.4027702169e-12 0.00208167078221 -1.0997372244395476 0.5223546815403989 602.261044969924 2.4296399582e-12 0.00195147609709 -1.1013572598412307 0.5111907499517534 596.789753472840 2.4146661434e-12 0.00192727703634 -1.1029849203501643 0.5217981403241715 595.275384371687 2.4156631318e-12 0.00197227341589 -1.1046203818291214 0.5071807865353839 596.455397036120 2.4276349113e-12 0.00191323068812 -1.1062637273519829 0.5257393077602721 594.114737567392 2.4253083849e-12 0.00199105217841 -1.1079147773366937 0.5108950870685341 591.879951010766 2.4234029727e-12 0.00194214036806 -1.1095738041365837 0.5253411384314259 590.680266008564 2.4257394363e-12 0.00200111232674 -1.1112409444605764 0.5154502249685488 586.689093382572 2.4165944938e-12 0.00197679319295 -1.1129159403839652 0.5371935846404188 584.347022405632 2.4142089646e-12 0.00206843796425 -1.1145991494660794 0.524107650862766 583.997599211480 2.4200691386e-12 0.00201925866824 -1.1162905202529045 0.5269057726708642 582.852798927262 2.4226610481e-12 0.00203402641403 - 1.117989952955742 0.5265821948266143 580.899612063716 2.4218998756e-12 0.00203961220451 -1.1196978530552606 0.5441191784702878 575.791871970474 2.4079447507e-12 0.00212623382016 -1.1214140310763452 0.5321076095647187 577.906508280390 2.4242022716e-12 0.00207168824778 - 1.12313863217999 0.5234061040677861 578.059881021148 2.4323096216e-12 0.00203726944702 -1.1248716329176798 0.5598052341087204 571.915694528678 2.4138886984e-12 0.00220235567723 - 1.126613117686139 0.5258844796562152 567.038106754387 2.400718008e-12 0.00208670293078 -1.1283632798467425 0.5011303174990496 568.797775928545 2.4156559266e-12 0.00198232704502 -1.1301220766082538 0.5131049890444898 566.041817261948 2.4114514981e-12 0.00203957762509 -1.1318896184619065 0.4883880254366141 567.111033249208 2.4235698831e-12 0.00193766827448 -1.1336659582675672 0.5001212816353833 564.726498176786 2.4209603403e-12 0.00199259798737 -1.1354510920324068 0.4866244411883766 565.070294114858 2.430069187e-12 0.00193764387206 -1.1372452665821025 0.4891370248769331 560.261076128432 2.4170076444e-12 0.00196436688691 -1.1390482618679425 0.47192586082239546 554.850819988853 2.401263285e-12 0.00191372734544 -1.1408604493931798 0.4820532924791452 553.045415162332 2.4010717745e-12 0.00196117692750 -1.1426816552177086 0.47293820470702713 552.506142901856 2.4063950107e-12 0.00192597127518 -1.1445121321825589 0.4853168892187471 552.389743657671 2.4136022654e-12 0.00197679810909 -1.1463519031341294 0.46935273997285043 554.144098491158 2.4290582088e-12 0.00190572031321 -1.1482009266506557 0.48488772143386477 552.042102777744 2.427656769e-12 0.00197629377857 -1.1500595217692602 0.4786185799214598 548.854632773703 2.4214598221e-12 0.00196207108498 -1.1519274860889794 0.4970042637658234 546.430400945843 2.4186021399e-12 0.00204648129302 -1.1538050370997313 0.49321518795809927 547.364231171814 2.4306396174e-12 0.00202741448876 -1.1556922281304682 0.5011233945202338 545.888302856763 2.4320218417e-12 0.00206549147833 -1.1575891741548254 0.4790735781632736 543.540425843859 2.4295176615e-12 0.00198313777525 -1.1594958041595147 0.4927723793824916 535.205465220168 2.4001489785e-12 0.00207161160650 -1.1614124004955804 0.4829184551734896 532.358745645300 2.3952817614e-12 0.00204104193465 -1.1633389101592324 0.49362309544060134 532.926874677976 2.4057994818e-12 0.00208406071736 -1.1652754817327162 0.47632911131721023 531.377178679188 2.4067967314e-12 0.00201691104448 -1.1672221364207747 0.4862314898193394 530.829405924066 2.4123554576e-12 0.00206096504806 -1.1691789641271644 0.4649810947871408 529.098191724826 2.4125568736e-12 0.00197734084076 -1.1711459748519795 0.47627473467178016 529.823919811827 2.4240016921e-12 0.00202259300296 -1.1731234569814313 0.4575224279044193 529.126494742076 2.4289928861e-12 0.00194551864821 -1.1751113056386455 0.46615741154104945 522.354927149419 2.4060408792e-12 0.00200793391898 -1.1771097053577613 0.4514546797167497 518.742160978310 2.3975337254e-12 0.00195814627338 -1.1791187738332385 0.4594162293091821 521.724197136871 2.4195543661e-12 0.00198128919766 -1.1811384425191793 0.4398326057088427 519.340206065628 2.4167562614e-12 0.00190553966607 -1.1831689432860875 0.4504747350380564 512.680122144030 2.3939732817e-12 0.00197699912686 -1.1852102788934629 0.43720219107403646 515.265312732475 2.4143544154e-12 0.00190912313639 -1.1872625699363273 0.4433826530803219 511.739144763636 2.4061433005e-12 0.00194945213717 -1.1893259328637886 0.4394433225872923 508.271364831351 2.3981520616e-12 0.00194531414562 -1.1914003485410145 0.45377634203940725 513.618884374058 2.4318440777e-12 0.00198784896866 - 1.193486077914145 0.44222833743483003 514.755319801614 2.4457657293e-12 0.00193298392644 -1.1955831861577462 0.4468378207341407 509.274028049176 2.4282333709e-12 0.00197415348374 -1.1976915837260158 0.4338536306851118 497.794092972703 2.3818753578e-12 0.00196099287401 -1.1998115021847404 0.447448741303316 499.792458420794 2.3999104554e-12 0.00201435546089 -1.2019430813610623 0.4313672622909612 504.396865435111 2.4306335037e-12 0.00192423150631 -1.2040863268859894 0.4475284002867346 497.590207674537 2.4063919808e-12 0.00202363086153 -1.2062414331041351 0.42918376669056235 500.136506656924 2.427371996e-12 0.00193079981605 -1.2084083370600456 0.44040995216896694 489.574216581100 2.3846533755e-12 0.00202404938581 -1.2105873840899852 0.43105279021252124 489.878838135284 2.3947504502e-12 0.00197981358344 -1.2127785194527212 0.4420642129934672 493.605394827455 2.42171029e-12 0.00201505998447 -1.2149817898393394 0.42481863857027546 493.604505664366 2.4305130091e-12 0.00193645302224 -1.2171974351583184 0.43347848414186896 491.030982461658 2.4266673659e-12 0.00198628319629 - 1.219425479800032 0.4182973052097743 488.132154225532 2.4211809275e-12 0.00192810272500 -1.2216659905668512 0.42923975826046623 485.838723350522 2.418668741e-12 0.00198788077127 -1.2239192242567039 0.4130256720294424 484.374253520094 2.4202813838e-12 0.00191857382037 - 1.226185203101892 0.4217791048567852 481.098143974559 2.4128210913e-12 0.00197257669316 -1.2284638761534257 0.4103662225913147 477.926481221932 2.4058313091e-12 0.00193193731067 -1.2307556544484877 0.42328687575110463 477.501572379664 2.4126692138e-12 0.00199453891993 - 1.23306050913629 0.40817354798992167 473.891054272532 2.4034029257e-12 0.00193797809580 - 1.235378468901255 0.4114229942014722 472.190775755271 2.4037918129e-12 0.00196044011125 -1.2377098291463982 0.40192682500880705 470.246524065160 2.4029380301e-12 0.00192310907150 -1.2400545533096239 0.4129777451697292 465.786103061624 2.3891719474e-12 0.00199490693373 - 1.24241281746224 0.3986132283526916 463.647189619497 2.3872547992e-12 0.00193440138078 - 1.244784766104799 0.41415830922342084 462.598396353516 2.3909580116e-12 0.00201439564663 -1.2471705634658996 0.4009398005950325 463.373645071531 2.4041542575e-12 0.00194684044061 -1.2495701671973174 0.4130189803823811 462.316229838955 2.4079071323e-12 0.00201008021324 -1.2519838617957912 0.39828259285525663 457.963180195241 2.3944585377e-12 0.00195678576942 -1.2544116612176401 0.409633935806575 456.751218495710 2.397392691e-12 0.00201789577836 -1.2568537704702938 0.3938889076029017 454.336789531313 2.3940141146e-12 0.00195064556190 - 1.259310244034565 0.4048455459465164 453.013217350346 2.3963797602e-12 0.00201076357928 -1.2617813698458669 0.3927184565237082 450.202834543652 2.3908687946e-12 0.00196270760506 - 1.264267009899656 0.4031577069317127 447.728131302835 2.3871037254e-12 0.00202601707862 -1.2667675197701274 0.39062107734615864 444.681022302915 2.3802453825e-12 0.00197646713025 - 1.2692831022248 0.40605783809416757 443.908715162710 2.3855579196e-12 0.00205814867901 -1.2718134612572483 0.3926838480598376 444.977549521598 2.4008456038e-12 0.00198558030419 -1.2743591708717643 0.4026862907946065 443.799841090030 2.4040867608e-12 0.00204156033959 -1.2769202998966216 0.3803176564731703 444.522517429872 2.4176901701e-12 0.00192501997877 -1.2794968758620644 0.3798056659425122 436.121623328250 2.3815811083e-12 0.00195945970725 -1.2820890548483108 0.37212315875319074 410.762478969276 2.252197378e-12 0.00203834855923 - 1.284696977244948 0.39071487690446155 427.704376703192 2.3546393419e-12 0.00205541144987 -1.2873208365650366 0.37676982919115715 431.697365230704 2.3863398447e-12 0.00196371853052 -1.2899608913564153 0.3857588614861733 426.512983185467 2.3673618256e-12 0.00203500824726 -1.2926169884082477 0.3784974714929335 424.295145575338 2.3647600445e-12 0.00200713894500 -1.2952894547318379 0.38991752587165046 422.212724535170 2.3628941908e-12 0.00207789671469 - 1.297978539627292 0.37375230217487915 419.124957033793 2.3553629704e-12 0.00200642473272 -1.3006843089540672 0.38627900558622597 416.780211159607 2.3519613984e-12 0.00208533836132 - 1.303406764073256 0.3676841151097924 412.217676143469 2.3359624032e-12 0.00200692330018 -1.3061463068002506 0.37889944798545455 412.986186771683 2.3501656621e-12 0.00206429121669 -1.3089029358941886 0.3626306759227081 411.478568120604 2.3514806028e-12 0.00198289554801 -1.3116769641668036 0.3713612821505195 405.102751396510 2.3248678559e-12 0.00206259493908 -1.3144685348499137 0.35926387338163407 400.937270844044 2.3107667839e-12 0.00201613512609 -1.3172775020341199 0.3740691404147334 400.185016770634 2.3162992704e-12 0.00210316611233 -1.3201044525987875 0.3622295742573601 400.998998038911 2.3309833764e-12 0.00203246528312 -1.3229492793408868 0.3723309357671441 398.377206904061 2.3257346729e-12 0.00210289291395 -1.3258124072836435 0.3533103998880279 395.069341932361 2.3164172155e-12 0.00201217435871 -1.3286936260289093 0.3658212763362942 389.808104181724 2.295513569e-12 0.00211154632992 -1.3315935315212517 0.35253269280951394 387.021756466466 2.2890645009e-12 0.00204949346017 - 1.334512017872734 0.3647869514429154 388.107696035020 2.3055605378e-12 0.00211480125010 -1.3374494530579115 0.35152127898430163 384.068928339578 2.2916232809e-12 0.00205932534333 -1.3404058834895376 0.3598657052727453 379.861628711138 2.2765509475e-12 0.00213155995674 -1.3433814805791733 0.3468609695897521 379.890560002686 2.2868438585e-12 0.00205437371640 -1.3463763996545715 0.35942596411078837 377.295412054390 2.2813598917e-12 0.00214343560354 -1.3493911937401026 0.3426448312543726 374.073391658010 2.27201847e-12 0.00206096153192 -1.3524257057309998 0.35271732000930955 373.398498761763 2.2781310238e-12 0.00212538071967 -1.3554800458556033 0.3358962489270611 369.215928995158 2.2627990297e-12 0.00204695003854 -1.3585546670955857 0.35571181474763197 368.163681340870 2.2665978815e-12 0.00217390151105 -1.3616496391114556 0.3336173763083891 367.350390119297 2.2719070177e-12 0.00204338723160 -1.3647652586615147 0.3449789126038968 365.775810971003 2.272532988e-12 0.00212207185406 -1.3679015282142537 0.33168778619115385 362.934874574032 2.2652579764e-12 0.00205628494590 -1.3710588837841677 0.3434019018903938 361.075307329649 2.2640671367e-12 0.00213987016993 -1.3742373296282997 0.33076170301834007 359.919664641845 2.2672966981e-12 0.00206772206384 -1.3774372566573243 0.34085423607622545 357.315811269337 2.2613885158e-12 0.00214634227477 -1.3806589182714133 0.3284958075939021 356.561339653195 2.2671818437e-12 0.00207289878315 -1.3839022477946805 0.33839072634644346 354.384147811136 2.2639373971e-12 0.00214845708811 -1.3871677453923272 0.3257076879907972 352.994586125315 2.2657151347e-12 0.00207607234440 -1.3904553980235885 0.3364095648061851 351.091423658725 2.2641940395e-12 0.00215591002744 -1.3937655831120415 0.3239083101385412 349.456906050883 2.2643960924e-12 0.00208550377798 -1.3970985205652364 0.33407906623587863 348.676077682996 2.2701550201e-12 0.00215580576685 -1.4004544241774977 0.3188932623476964 343.828954226166 2.2493638083e-12 0.00208682204178 -1.4038335473605112 0.33032649528789204 343.132622634568 2.2556542951e-12 0.00216602725993 -1.4072360422493864 0.3141546728125581 342.808712052971 2.2644620516e-12 0.00206193130156 -1.4106621664818155 0.3235864900009194 339.078134137099 2.2507389127e-12 0.00214720304615 -1.4141122391626086 0.30944869095915617 337.355394797341 2.2502704586e-12 0.00206387556089 -1.4175864524783464 0.3188493423689796 338.195538174481 2.2669726414e-12 0.00212129061253 -1.4210849794265215 0.30319247111934683 333.561119899252 2.2469572953e-12 0.00204515160587 -1.4246083522440398 0.31451395566213974 329.968994481058 2.2337954543e-12 0.00214461483374 -1.4281565068148825 0.30468787514801055 327.684886277123 2.2293964943e-12 0.00209209441080 - 1.431729506889234 0.3155795492266339 328.475003302005 2.2459680495e-12 0.00216166825062 -1.4353282957859161 0.3003330174157737 328.467245171135 2.2572198367e-12 0.00205728059379 -1.4389524936161464 0.3085110700054551 323.656331384679 2.2354055069e-12 0.00214471289513 -1.4426029081486185 0.2918437066194698 319.080223236389 2.214995208e-12 0.00205794120749 -1.4462792549975718 0.3071348845287636 321.285738847825 2.2416874446e-12 0.00215089998289 -1.4499821716552295 0.2924003596098482 318.623816578886 2.2345128539e-12 0.00206481993778 -1.4537119113150305 0.30385566584435436 314.442015002251 2.2165450658e-12 0.00217424903649 -1.4574685899763624 0.2928192731521884 315.234894663017 2.2336338904e-12 0.00209000772360 -1.4612525072758935 0.3029077040559723 313.498952139741 2.2328828051e-12 0.00217398600370 -1.4650640240588766 0.28913678843633894 310.769124909892 2.2250018168e-12 0.00209337968877 -1.4689034683283702 0.29891951871737243 310.656567286308 2.2358689696e-12 0.00216499178816 -1.4727710863035506 0.28542073674494883 305.871449519302 2.2130373167e-12 0.00209956391381 - 1.476667174315558 0.296875636854027 304.548993301245 2.2151426905e-12 0.00219330944319 -1.4805918906353512 0.28083979702018297 305.548880544532 2.2342446503e-12 0.00206804731920 -1.4845457078488258 0.28656461089227814 303.408721048084 2.2304603339e-12 0.00212508846905 -1.4885289814743705 0.2736798185566033 294.034906054456 2.173165375e-12 0.00209423976226 -1.4925417208862464 0.28879097380861274 302.224035521650 2.2457492169e-12 0.00214999343102 -1.4965846330964558 0.2720269800994383 298.896282119176 2.2330701859e-12 0.00204773609389 -1.5006576618997614 0.2743176508590842 296.877115513089 2.2300740221e-12 0.00207902422309 - 1.504761413420241 0.26272644507800824 283.636477139204 2.1422821634e-12 0.00208412721589 -1.5088960061063914 0.27968274505235174 292.455519620774 2.2210469418e-12 0.00215173294450 -1.5130619103047387 0.2657074582526556 289.953575821567 2.2142220082e-12 0.00206185345145 -1.5172593787386073 0.2766280226033677 288.116448850689 2.2124171267e-12 0.00216028294580 -1.5214887679931992 0.2622749951069836 284.219907229222 2.1946804333e-12 0.00207627517982 -1.5257504525476668 0.27412090583465787 284.237713570541 2.2071305036e-12 0.00216991626614 -1.5300446555812952 0.25955960688289387 280.188209764636 2.187949863e-12 0.00208434579020 -1.5343718263234196 0.2708063818639833 279.849923277474 2.1976863982e-12 0.00217728971321 - 1.538732276391054 0.2594061070320821 275.912543729198 2.1790985387e-12 0.00211539400469 -1.5431263865691158 0.26938966694002886 276.418699928338 2.1955822552e-12 0.00219278489759 -1.5475544557635115 0.2549809236846403 273.426951179572 2.1843010627e-12 0.00209820968934 -1.5520168916188706 0.26502068408202417 271.056107283641 2.1778671357e-12 0.00219990077021 -1.5565139969429576 0.24923083699936244 267.874899670048 2.1647980065e-12 0.00209340025489 -1.5610462467467285 0.26066490996973396 268.795362789867 2.184905249e-12 0.00218194258020 -1.5656139135569136 0.24638061832502908 265.594721596397 2.1715412383e-12 0.00208722668846 -1.5702174134524622 0.254147139305747 265.087873690806 2.1801618576e-12 0.00215713776521 -1.5748571639686426 0.23698264027647636 259.754778871762 2.148944425e-12 0.00205274737557 -1.5795334168747122 0.24892988357689771 259.865436188252 2.1626460836e-12 0.00215531640630 - 1.584246660528156 0.23457823200999953 259.133179007679 2.1694413852e-12 0.00203679445466 - 1.588997222099637 0.24612500427185988 247.049011921480 2.080696297e-12 0.00224158459613 -1.5937856667673138 0.23682522194556027 254.249275180041 2.1542636538e-12 0.00209580439905 - 1.598612035536564 0.2502402368293649 252.326296285823 2.1509383695e-12 0.00223139855478 -1.6034770661003752 0.23848966723746803 249.107294528951 2.1364426913e-12 0.00215409890866 -1.6083810509067409 0.2488043920479568 245.480795295820 2.1182378029e-12 0.00228046304573 -1.6133246243049066 0.23440385253041995 242.633767848072 2.1065611211e-12 0.00217368205947 -1.6183078003659084 0.24447006985794317 239.237511073147 2.0899256085e-12 0.00229921158565 - 1.623331012496789 0.23523812655262527 239.838440332061 2.1082021872e-12 0.00220684300653 -1.6283949807298252 0.2492657671367102 240.460352971831 2.1268765722e-12 0.00233239271724 -1.6335000630782803 0.23071702639022199 237.009684024047 2.1095202541e-12 0.00219026202037 -1.6386465526621865 0.23975690589030904 228.398638920135 2.0457067865e-12 0.00236189252617 -1.6438348663650428 0.22366438881004044 227.829730791664 2.0535537262e-12 0.00220886393130 -1.6490655574884148 0.23686528916999558 228.139076764699 2.0694494332e-12 0.00233606144195 - 1.654339092369119 0.22330342525828883 226.236787834317 2.0653401496e-12 0.00222082673486 -1.6596556074063582 0.2354873789855072 224.816355272543 2.065585399e-12 0.00235679740504 - 1.665016066835468 0.2200980016152683 221.926184846960 2.0522237136e-12 0.00223146495298 -1.6704204186673461 0.2291950255553954 219.817099782055 2.045937444e-12 0.00234599040753 -1.6758693456217333 0.21352619647042195 217.172348122227 2.0345301884e-12 0.00221222428275 -1.6813634072745256 0.22520768163221166 208.828595332208 1.9692118791e-12 0.00242647460644 - 1.686902914752053 0.213620999670457 212.342398141424 2.0155621407e-12 0.00226354818192 -1.6924883862025286 0.22411754363073316 211.346035299639 2.0194113682e-12 0.00238596608853 -1.6981200666205702 0.21043461116901147 208.289283478927 2.0034707726e-12 0.00227317443904 -1.7037985825782809 0.22001044692726854 204.976670661060 1.984815931e-12 0.00241502364142 -1.7095246133186046 0.20493508959398715 200.998858433907 1.9594022573e-12 0.00229406253936 - 1.715298426972548 0.21687823865683428 202.019210108957 1.9826741506e-12 0.00241549324302 - 1.721120395588853 0.20364886815616248 198.212861137182 1.9585453395e-12 0.00231170646911 -1.7269912906939793 0.21057584044530603 197.412471373118 1.9639669598e-12 0.00240002892272 - 1.732911326608031 0.1954744151786506 190.711230825275 1.9103293441e-12 0.00230619577174 -1.7388809874956974 0.20891411024129325 187.624292695741 1.8923788397e-12 0.00250530856793 -1.7449008648691056 0.19537969362593807 188.742865350476 1.9168642457e-12 0.00232911749984 -1.7509715786773745 0.20632937636206575 185.748581309539 1.899603653e-12 0.00249929821020 -1.7570933920766574 0.1928108317540393 184.464915133670 1.8996901218e-12 0.00235179882924 -1.7632669551919236 0.20301933940886402 180.785926208649 1.8749083917e-12 0.00252670948038 -1.7694925283332108 0.18626171730393298 179.794205339815 1.8778134871e-12 0.00233093643447 - 1.775770834889785 0.1966534579845818 176.943400062379 1.8611762547e-12 0.00250063172918 -1.7821022393478836 0.1833476556409023 174.545854518289 1.8490730449e-12 0.00236346045760 -1.7884873184208876 0.19419864473130027 173.752880774410 1.8538860691e-12 0.00251476089892 -1.7949264130736877 0.17930811389763082 170.942489390593 1.8370569423e-12 0.00236011103915 -1.8014202427109627 0.18955785885612267 168.837767894727 1.8275908553e-12 0.00252612426559 - 1.807969189522056 0.17379550522599269 168.573148504768 1.8380179391e-12 0.00231970447386 - 1.814573825449647 0.18248096555934598 162.778417591667 1.7878266365e-12 0.00252233790316 -1.8212345587820935 0.17062596286055454 159.094379540945 1.7602157378e-12 0.00241308597792 -1.8279518632043241 0.18353974539688817 161.417544876790 1.7991175685e-12 0.00255836146844 - 1.834726288593444 0.16771093183912444 158.212524962897 1.7764898323e-12 0.00238508042727 -1.8415582470610394 0.17741570863718817 154.923659502568 1.7525400994e-12 0.00257665837300 - 1.848448304335636 0.1645705450673216 153.104862040668 1.7449496412e-12 0.00241849750208 -1.8553969602509048 0.1772304020652293 152.117331456834 1.7467537194e-12 0.00262145280112 -1.8624046006719863 0.16380780551297752 150.474058534027 1.7409608438e-12 0.00244937609841 -1.8694719544524856 0.17006562073202852 148.863823964164 1.735427106e-12 0.00257045423433 -1.8765993186118681 0.1565667218477617 139.624114706657 1.6401472425e-12 0.00252302494378 -1.8837871886210775 0.1714395164600252 145.914577043950 1.7271961277e-12 0.00264359407984 -1.8910358937726035 0.15537187225779917 141.887129672463 1.6924733728e-12 0.00246383666642 -1.8983463632697999 0.16570684546175585 139.059619135440 1.671595687e-12 0.00268115506577 -1.9057185445209412 0.15140764473819435 138.719731577579 1.6804866126e-12 0.00245579483745 -1.9131531579206162 0.16215121430288887 136.464761365483 1.6660932124e-12 0.00267351240372 -1.9206508456035205 0.14781886532991173 134.491580150219 1.6548980219e-12 0.00247296110746 -1.9282116786110135 0.15901202544827883 132.493653111690 1.6431748895e-12 0.00270033355452 -1.9358362235541149 0.14313791068685386 131.889119317998 1.648638698e-12 0.00244190196061 - 1.943525039231293 0.1530575853285436 124.462073351593 1.5681825209e-12 0.00276694383852 -1.9512784531821132 0.14160850264049052 126.719403205057 1.6093885745e-12 0.00251436735719 -1.9590970892836534 0.15241106664870688 126.113919155397 1.6145601827e-12 0.00271916773546 -1.9669811266167558 0.13710051955550237 123.281053102535 1.5910213897e-12 0.00250221880197 -1.9749310272866345 0.14616436816293715 121.083303430917 1.5753150562e-12 0.00271606257054 -1.9829472181859453 0.1319870912138794 119.448692204879 1.5666897606e-12 0.00248618004726 - 1.991030448185907 0.14320189749391718 118.335772766644 1.564772307e-12 0.00272279685025 -1.9991805047475053 0.12810212122142567 116.456505882088 1.5525552665e-12 0.00247499931897 -2.0073980179195132 0.13869678408776218 114.944067569921 1.5450154998e-12 0.00271495320111 -2.0156835486123454 0.12555095050070655 113.576673100236 1.5392641077e-12 0.00248721529620 - 2.024037130035415 0.13479008188030342 111.225679768849 1.5199220521e-12 0.00272668762161 -2.0324593109595424 0.12045423430703325 109.128171924720 1.5036954898e-12 0.00248352027172 - 2.040950597598793 0.1315658604426766 107.396251535575 1.4922218863e-12 0.00275636422839 - 2.049510803782166 0.11668350596414666 105.844253579514 1.4830199921e-12 0.00248041702351 - 2.058140514130872 0.12817370096838196 103.637745159546 1.4643581076e-12 0.00278268141337 -2.0668402565414787 0.1146063052236874 101.349750484923 1.4441616386e-12 0.00254430016374 - 2.075609958861612 0.12557978680914678 100.277201924806 1.4410299123e-12 0.00281773438924 -2.0844499851401226 0.11314589256615151 98.348527585618 1.4253782166e-12 0.00258853146583 -2.0933606363973127 0.12371388459486941 96.341112466490 1.4082477331e-12 0.00288927782970 -2.1023422361414728 0.10880693721593444 95.830497217194 1.4128298738e-12 0.00255467326003 - 2.111394882469336 0.11934198325517191 94.398907839071 1.403735218e-12 0.00284451873937 -2.1205186830541027 0.10478564324322374 92.700416976052 1.3904173909e-12 0.00254332941521 -2.1297138636932536 0.11592985778937936 92.037875257088 1.392478176e-12 0.00283407433404 - 2.138980789001689 0.10152874310621926 90.694620982748 1.384122713e-12 0.00251877861679 -2.1483194252952846 0.11230276335031084 89.546588836011 1.378561211e-12 0.00282178495935 - 2.157729988211096 0.09671068294197328 88.186078494213 1.3695362203e-12 0.00246749872922 -2.1672123752529107 0.10763697090773876 83.452141103778 1.3074338495e-12 0.00290206076608 -2.1767670983445426 0.09519565536300499 85.143095731818 1.345713666e-12 0.00251564995054 -2.1863938653157806 0.10647544862094951 83.844197358333 1.336931355e-12 0.00285732068462 - 2.196092847856433 0.09265163874018174 83.184256557292 1.3382024841e-12 0.00250607742129 -2.2058639085496345 0.1030242814109442 80.924241729483 1.3134555071e-12 0.00286446469217 - 2.215707358160654 0.08894659487603057 80.289967225888 1.3148172026e-12 0.00249258836920 - 2.225622854208662 0.09967027237795205 78.772057789044 1.3015313473e-12 0.00284692464746 - 2.235610698082088 0.08600040983346324 77.396683800353 1.2903098374e-12 0.00250011903126 - 2.245670434015629 0.0966670886614709 75.904273844801 1.2768432041e-12 0.00286546380686 -2.2558024404775705 0.08273906580641961 74.403560856900 1.2629179682e-12 0.00250206973860 - 2.266006135944482 0.09378989308397957 73.160175938782 1.2530725066e-12 0.00288445533012 -2.2762816368436645 0.0798558989796186 72.235545229260 1.2484818755e-12 0.00248735954209 -2.2866288299779898 0.0910344922373857 71.012409288855 1.2385253332e-12 0.00288439175047 - 2.297047260002892 0.07773175989811922 69.445050641669 1.2222511573e-12 0.00251848703622 -2.3075370142377367 0.08987867096899771 69.021620185800 1.2259190642e-12 0.00292990818146 -2.3180978040004216 0.07622861132495234 67.512660130614 1.2101188571e-12 0.00254047722530 -2.3287293086234215 0.08774004742279012 65.864740414250 1.1914348515e-12 0.00299728057015 - 2.339431166536907 0.0747305602913234 65.242399730478 1.191049378e-12 0.00257721606425 -2.3502031488695625 0.08583578977155144 63.841556939034 1.176233582e-12 0.00302515377516 -2.3610448020200296 0.0726695747998662 62.905272296520 1.1697008349e-12 0.00259925022706 - 2.37195597219257 0.08340578915548659 61.875435273602 1.1612101174e-12 0.00303291645174 -2.3829361757265333 0.06972064604908315 60.388944677436 1.143830198e-12 0.00259768496450 -2.3939848123472154 0.08076234246389959 60.016509511212 1.1473417907e-12 0.00302775472989 - 2.405101740523819 0.06688102542768498 59.320183591813 1.1445866832e-12 0.00253678087458 -2.4162865344377935 0.07799921942247037 57.547171788824 1.1207278108e-12 0.00304964150705 - 2.427538213325852 0.06503429532050517 57.167977043050 1.1237359421e-12 0.00255960018248 -2.4388566659903566 0.07613668351374042 56.199742248455 1.1150290317e-12 0.00304819081106 - 2.450241404731836 0.06260414958452087 54.594074516441 1.0933080707e-12 0.00258012133758 -2.4616916046171164 0.0736743705091738 54.196727030651 1.0955183242e-12 0.00305862259084 -2.4732067531820885 0.0603738451195868 53.223038480170 1.0859249439e-12 0.00255229981974 -2.4847864860026543 0.07264723022928565 51.827598977239 1.0673787185e-12 0.00315384604422 -2.4964297173952845 0.06029575154837807 51.657536757446 1.073869921e-12 0.00262624680733 - 2.508136120488695 0.07136509232880052 50.850056010082 1.0670209291e-12 0.00315774397000 - 2.519904662144412 0.057833501754242296 49.845855832607 1.0557876418e-12 0.00261055561738 -2.5317351032588524 0.06941163226897515 48.838261037725 1.0441815504e-12 0.00319782419125 - 2.543626459741413 0.056033792901755426 47.882951134836 1.0333962333e-12 0.00263300467162 -2.5555779628671536 0.06776903521641385 47.032215425411 1.0245968172e-12 0.00324204011777 - 2.567588784011316 0.05515105908633902 46.254214316892 1.0171419006e-12 0.00268278004020 - 2.579658281027497 0.06776260049149221 45.538561906035 1.0108412801e-12 0.00334806029713 -2.5917854496629817 0.05543896183536353 44.949826179709 1.007176093e-12 0.00277504219106 - 2.603969469118693 0.06679475587188934 44.260021846405 1.0010659667e-12 0.00339557448104 - 2.616209738471815 0.053927404418924046 43.341822624912 9.8953596498e-13 0.00279952832147 - 2.628505424184944 0.06577884653570312 42.648082001273 9.8287108041e-13 0.00347031795477 -2.6408549470874183 0.05323307098057201 42.029789788933 9.7774501444e-13 0.00284975038676 -2.6532583114424866 0.06579520457423801 41.232071098306 9.6821880608e-13 0.00359038986761 -2.6657139200368314 0.05339655673056054 40.470756713302 9.5928510582e-13 0.00296861888437 - 2.678221129066071 0.06456344758464479 39.780945706131 9.5180342736e-13 0.00365169189638 -2.6907792326866535 0.05192247661100278 39.133341470564 9.4511001202e-13 0.00298532064947 -2.7033865363301195 0.06404428443916431 38.491590913091 9.3834263945e-13 0.00374366547523 -2.7160429736721596 0.051873916564967364 37.834384653577 9.3097763128e-13 0.00308492693458 -2.7287468156447967 0.06184578304784607 37.190432183080 9.2371289444e-13 0.00374163470789 - 2.741497172152789 0.049003340706099435 36.532649979703 9.15874732e-13 0.00301805416935 -2.7542935837493134 0.06116306730424123 35.791964050645 9.0570192005e-13 0.00384491058495 -2.7671344221039424 0.04826835145403151 35.180175832360 8.985408303e-13 0.00308707356351 - 2.780018957931421 0.06032095020435164 34.673974753987 8.9387839553e-13 0.00391423651089 -2.7929459116623807 0.04734827009930301 34.141082171083 8.8834493466e-13 0.00312039340726 - 2.805914740360298 0.05950772799168934 33.588082106866 8.8209110839e-13 0.00398630643915 - 2.81892388753323 0.04703976607569151 33.016005398390 8.7512587248e-13 0.00320570197373 - 2.831972336164923 0.059665748557962056 32.441410298544 8.678747159e-13 0.00413816578934 -2.8450594100618134 0.04740105881720902 31.860678926319 8.6023478998e-13 0.00334746106903 - 2.858183654777948 0.05984909211568301 31.271668185596 8.521393271e-13 0.00430614882651 -2.8713444243585258 0.047692980591720224 30.694745833002 8.4413890978e-13 0.00349601221379 - 2.884539875942028 0.0599975329252137 30.177879781458 8.3757000352e-13 0.00447329136637 - 2.897770173335171 0.04766268822454997 29.753424064625 8.3338201739e-13 0.00360432628770 -2.9110330543749527 0.06020060869722859 29.252611996436 8.2687187741e-13 0.00463040256321 - 2.924328553948569 0.04754580625062687 28.741457788938 8.1986136047e-13 0.00372208204780 - 2.937654416205783 0.06032735625860078 28.256673251464 8.1339544378e-13 0.00480369894835 -2.9510106967700214 0.048045774191701335 27.799848076107 8.0753859344e-13 0.00388861808293 - 2.964395240195053 0.06085151293635593 27.349409662939 8.0167708159e-13 0.00500617401963 - 2.97780830298386 0.0488808714967869 26.892791823688 7.9544225965e-13 0.00408964460026 -2.9912475572986392 0.062006663710861866 26.425014341089 7.8867712149e-13 0.00527965629644 -3.0047127195708905 0.049617450963165825 25.966219291306 7.8197690812e-13 0.00429940390685 - 3.018202553461054 0.06328545182475037 25.519731925510 7.7544708802e-13 0.00557969288319 -3.0317162654024257 0.0511089002106795 24.988134908364 7.6610843956e-13 0.00460198513798 - 3.045252682447505 0.06502662497349028 24.538063169519 7.5904276679e-13 0.00596256946523 -3.0588106090899787 0.053416652130439175 24.236294683803 7.5639856638e-13 0.00495898687739 -3.0723888872134673 0.06674692668592115 23.859725445527 7.512718396e-13 0.00629431320935 -3.0859873270328606 0.054979973047105564 23.465471696235 7.4541282784e-13 0.00527178575216 -3.0996040787991395 0.06831368534795657 23.069224970245 7.3930688173e-13 0.00666280693136 -3.1132385743262785 0.05682653849482954 22.661886402801 7.3265608526e-13 0.00564205950647 -3.1268897817109464 0.07047348643024595 22.293884708525 7.2709338662e-13 0.00711250401360 - 3.140556887603248 0.05884456412169073 21.960008411725 7.2247883393e-13 0.00602915385056 - 3.154238648678162 0.07262573588346857 21.594899759559 7.1667059736e-13 0.00756696755054 -3.1679343885014277 0.06116751078360751 21.248793081933 7.1132147614e-13 0.00647692782985 -3.1816431342019458 0.0748316581751436 20.919986311486 7.0638850725e-13 0.00804834326309 -3.1953637784483138 0.063920215421267 20.590630985978 7.0127695617e-13 0.00698475363848 - 3.209095621147505 0.07799759386394656 20.260917510908 6.9599115644e-13 0.00866172946508 -3.2228378197717134 0.06698293793033004 19.929586351814 6.904853756e-13 0.00756220463801 -3.2365893896583797 0.0808069828223043 19.594061526145 6.8466633889e-13 0.00927912322351 - 3.250349548191665 0.0703971906301067 19.281603093068 6.79489222e-13 0.00821475673746 - 3.264117382415445 0.08462691139856947 18.967828361951 6.7410639107e-13 0.01003860573880 -3.2778920136971346 0.07412287955903721 18.628162516880 6.6763423681e-13 0.00895292162374 -3.2916727378425237 0.08785103522087648 18.252306435827 6.5967549215e-13 0.01082958090485 - 3.305458826111812 0.07793701386150162 17.927578715270 6.5337789705e-13 0.00978148159177 -3.3192489934468696 0.09148659088786246 17.694467706765 6.5027411103e-13 0.01163328747205 -3.3330432366512133 0.0813202234937455 17.477400002350 6.4764649258e-13 0.01046897724126 -3.3468405529538887 0.09549257110532501 17.232643642594 6.4387453539e-13 0.01246809772448 -3.3606396949040023 0.08380524029595217 16.958860760279 6.3888085963e-13 0.01111877698221 -3.3744402630197317 0.09864147675912095 16.694968242086 6.3411552042e-13 0.01329402485166 -3.3882417206589466 0.08865971340741123 16.408052486844 6.2832610725e-13 0.01215771069276 - 3.402043277920716 0.10340244230537876 16.123528313918 6.2247089485e-13 0.01442956471173 - 3.41584420449948 0.0936554091408023 15.904207913261 6.1899544119e-13 0.01324961744188 - 3.429643640441855 0.10888117547754218 15.694913848438 6.157950969e-13 0.01560904680269 -3.4434410573931142 0.09917516601475218 15.480282864516 6.1227072688e-13 0.01441473166131 -3.4572358047757015 0.11472140169753645 15.246644684640 6.0787121823e-13 0.01692983336061 - 3.471027564340146 0.10344778262131417 15.012060881374 6.033033532e-13 0.01550470070280 -3.4848148793920353 0.1203462468991082 14.787757438448 5.9901961022e-13 0.01831102901505 - 3.498598088445921 0.110426043401737 14.580194152669 5.9529291436e-13 0.01704082915854 - 3.512376036215796 0.12581899713706085 14.367770781746 5.9124938058e-13 0.01970331708786 - 3.526148460358045 0.11680617853883386 14.151244009491 5.86914857e-13 0.01857178786092 -3.5399144917274143 0.13291694279971583 13.931920529806 5.8233893612e-13 0.02146603698030 - 3.553673834680306 0.12246236027196995 13.717714535463 5.778514233e-13 0.02008645900158 - 3.56742573921698 0.13866135256288561 13.515693009463 5.7375634168e-13 0.02308339224989 -3.5811699060296487 0.12832826425843738 13.324553799237 5.7000914625e-13 0.02166966330970 -3.5949055912025214 0.14512200052856697 13.138550989605 5.6637196367e-13 0.02485239821709 -3.6086325605374276 0.13647785167741372 12.957445343837 5.628387755e-13 0.02369874293317 -3.6223501268922598 0.15184255444843386 12.773008993938 5.5905349466e-13 0.02674747568651 - 3.636057735020356 0.14166552870367852 12.569005933950 5.5429603169e-13 0.02535979704825 -3.6497553085266943 0.15859632381489663 12.368181694756 5.4955688289e-13 0.02885159172062 - 3.663441825711452 0.14903379047921061 12.169831400149 5.4480672226e-13 0.02755387626604 - 3.67711751954297 0.16296445897829673 11.970970444455 5.3991286465e-13 0.03062993383891 - 3.690781372437127 0.15740459900612233 11.762507862573 5.3446080797e-13 0.03010925492264 -3.7044333496442916 0.1761359060163592 11.583614184247 5.302332423e-13 0.03421261984673 -3.7180730143226364 0.16718174100957617 11.457429090108 5.2832638872e-13 0.03283100548240 -3.7316995754706976 0.1849292241362161 11.233125977313 5.2178702169e-13 0.03704140371495 -3.7453133255051174 0.17731484469854758 11.049017995859 5.1698660353e-13 0.03610804152199 - 3.758913341707658 0.19499317705970995 10.962807871096 5.1668484953e-13 0.04002028071121 - 3.772499389334433 0.1871790759961237 10.847303380012 5.1494333355e-13 0.03882558699034 - 3.786071335474515 0.19687418627388745 10.716014327781 5.123776384e-13 0.04133690993375 -3.7996287150119215 0.19555358930971872 10.575259430985 5.0927534253e-13 0.04160612596015 - 3.813171154840607 0.21291562008363576 10.444675568114 5.0657861205e-13 0.04586644573726 -3.8266984001899895 0.20604978118535083 10.316170167121 5.0390221107e-13 0.04494032185943 -3.8402102923819346 0.2211281222392071 10.186331110116 5.010800367e-13 0.04884371710086 - 3.853706058985126 0.21574664361803797 10.047942764837 4.9775269632e-13 0.04831137671677 -3.8671859115300644 0.23268030586452101 9.910572812745 4.9438826714e-13 0.05282547215857 - 3.880649489415119 0.22535622549041034 9.777156489449 4.9113479038e-13 0.05186083580647 - 3.894096324302824 0.24242746154940542 9.652862348770 4.8825735063e-13 0.05650777653072 -3.9075263208913538 0.23622738866204707 9.534093577350 4.8558194625e-13 0.05574852188910 -3.9209391027013307 0.2539778297194166 9.416397786584 4.8288563715e-13 0.06068670098908 - 3.934334645789368 0.24764653417485194 9.287768610402 4.7954931919e-13 0.05999338756883 - 3.947712401792979 0.26502593536646607 9.155283827440 4.7592894849e-13 0.06513269995926 -3.9610722198515678 0.24765820635965 9.024021137609 4.7228583737e-13 0.06174974058814 -3.9744141559745674 0.2644012381209337 8.905696482722 4.6923827423e-13 0.06680025385171 - 3.987737705260677 0.2695599404097589 8.784074688949 4.6593838104e-13 0.06904652879204 - 4.001043065038957 0.2881040847966156 8.667554723700 4.6283089482e-13 0.07478858933765 - 4.014329197776105 0.2777981591239771 8.588551854678 4.6166314695e-13 0.07277662970487 - 4.027596662286301 0.2996106419867815 8.491497772869 4.5946828741e-13 0.07938810825861 - 4.040845509450447 0.2934455938688699 8.378041107250 4.5631660996e-13 0.07880751332595 - 4.054074888440007 0.2786133476929812 8.266631424170 4.5320156976e-13 0.07583258526276 - 4.067285143585393 0.3039817769648034 8.157471097203 4.5013634636e-13 0.08384448930567 - 4.080475494989134 0.3219840282000855 8.050308460976 4.4710895328e-13 0.08999208750348 - 4.093646057522934 0.31480792648899153 7.944692017976 4.4409608403e-13 0.08915610989042 - 4.106797033354939 0.3321025636256085 7.841182884392 4.4113077773e-13 0.09529566892835 -4.1199280222783825 0.3250468622306562 7.739705318584 4.3821070245e-13 0.09449396455223 - 4.133038942129244 0.3363744366390884 7.639766298350 4.353097207e-13 0.09906618250894 -4.1461295421720505 0.3201160796062884 7.541518947095 4.3243800768e-13 0.09550611543469 - 4.159199794675065 0.3561307944755739 7.445022935574 4.2960062354e-13 0.10762818254612 - 4.172249316740064 0.34944307239715344 7.350055255167 4.2678623662e-13 0.10697156491999 - 4.18527856539466 0.3489491050419306 7.256690597542 4.2400076685e-13 0.10819470332803 - 4.198287056555783 0.35677068003199985 7.165125451403 4.2125721844e-13 0.11203349271642 - 4.211274252456725 0.37835288020468943 7.075072719565 4.1854027491e-13 0.12032300079496 - 4.224241319357192 0.3724783481749601 6.986530610697 4.1585153017e-13 0.11995600249865 -4.2371869116942955 0.3934703805690348 6.899816951798 4.1321122487e-13 0.12830896275439 - 4.250111496690112 0.3883836182085611 6.814135437829 4.105733018e-13 0.12824270209219 - 4.263014796725578 0.4078847695367911 6.729717633081 4.079527073e-13 0.13637135783328 - 4.275896954596135 0.405021280964597 6.647206700398 4.0538991637e-13 0.13709486153271 - 4.288757823159552 0.42172155661995103 6.566145314916 4.0285878023e-13 0.14450997607978 - 4.301597355172801 0.42319009444344025 6.486323281300 4.0034775756e-13 0.14679775755902 - 4.314415248882515 0.44423591510983335 6.407979199074 3.9787282258e-13 0.15598221809795 -4.3272114976696905 0.4415617443721943 6.330627006508 3.9540510123e-13 0.15693768149919 - 4.3399867389942 0.4592946822020214 6.254335596323 3.9294999093e-13 0.16523146528339 -4.3527395343168145 0.4512850523042823 6.180010750618 3.9056550872e-13 0.16430252448722 - 4.365471017691944 0.4727321925327024 6.106736508461 3.8819567926e-13 0.17417608107453 - 4.378180601883224 0.4690949360279945 6.034430425796 3.8583615976e-13 0.17490691442080 - 4.390868431673835 0.4899361128801276 5.963577279875 3.8351909926e-13 0.18484815442912 - 4.403534759589872 0.4853402928745819 5.893702335639 3.8121532624e-13 0.18528517335606 - 4.416178460148253 0.5016828333112663 5.824797802436 3.7892510669e-13 0.19378979549785 - 4.428800952034485 0.4957097971379569 5.757259299839 3.7667553229e-13 0.19372881877867 - 4.441401163707308 0.5114589913249225 5.690755122656 3.7444600302e-13 0.20221968889499 - 4.453979576113335 0.5108220162734709 5.625229874554 3.7223397844e-13 0.20432045662960 - 4.466535799728436 0.5300346931789736 5.560588633148 3.7003406202e-13 0.21446975101581 - 4.479069562225086 0.5286494782194124 5.496864836158 3.6784933039e-13 0.21638904383631 - 4.491581804766609 0.5471937425026004 5.434582961208 3.657161571e-13 0.22654653161410 - 4.504072269448035 0.544343770780877 5.373211234984 3.6360003123e-13 0.22794069145891 - 4.516539935546451 0.5662729629172291 5.312757775835 3.6150226438e-13 0.23982161813571 - 4.528985433774625 0.5608043556682579 5.253234823492 3.5942473349e-13 0.24019672499903 - 4.541409291368061 0.5816430547007814 5.194494105231 3.5735827504e-13 0.25193923538366 - 4.553810767794701 0.5797104976951648 5.136711995430 3.5531576152e-13 0.25392675722810 - 4.566190220135466 0.600702634141975 5.080078691769 3.5331146927e-13 0.26605511623460 - 4.578547370215166 0.6055946932730528 5.024539034178 3.5134270868e-13 0.27118668013040 - 4.590882251900911 0.6234358012072667 4.969496432003 3.4936869546e-13 0.28226814767046 - 4.603194993555947 0.62115875698909 4.915091178850 3.4739984492e-13 0.28435020885052 - 4.615485704754688 0.6361880818738977 4.861596283033 3.4545621373e-13 0.29443481130095 -4.6277541772567306 0.6529467844460851 4.808975358923 3.4353612439e-13 0.30549756556305 - 4.640000481508614 0.6599327839099729 4.757113118013 3.4163222292e-13 0.31213232205366 - 4.65222464132043 0.6542170651111999 4.706200531770 3.3975908642e-13 0.31277638650609 - 4.664426362335868 0.678917990313051 4.656037483003 3.3790315549e-13 0.32808272780894 -4.6766063177310775 0.663511094398034 4.606732490279 3.3607322607e-13 0.32406916736449 - 4.688763512792136 0.6803140795850057 4.558317029938 3.3427237082e-13 0.33580522570348 -4.7008994165726445 0.6551907173726306 4.510513025745 3.3248124805e-13 0.32683180509047 - 4.7130126868595 0.6484631331891134 4.463191642606 3.3069075214e-13 0.32690553453885 - 4.725103758581679 0.6504547627605822 4.416562820483 3.2891706665e-13 0.33137153838816 - 4.737172869348532 0.6387959438314537 4.370727493209 3.271685081e-13 0.32884476917264 - 4.749220136294534 0.6399573962747401 4.325361984425 3.2542158573e-13 0.33289795092369 - 4.761244906041078 0.6272879762741761 4.280518640630 3.2368064568e-13 0.32972591994346 - 4.773247565725653 0.5802400503444715 4.236592947865 3.2197633719e-13 0.30815802446471 - 4.785228515808053 0.6041481642727996 4.193397902485 3.2029542463e-13 0.32416035902729 - 4.797187475918006 0.5776343237825544 4.150972276232 3.1864162796e-13 0.31310188120325 - 4.80912401692406 0.5313944124405289 4.109007943712 3.1699194849e-13 0.29097958543035 - 4.821039063936418 0.48227569826435707 4.067525723497 3.1534859924e-13 0.26677651104363 +1.0461157626959012 0.6496984097619729 661.193998597859 2.41361331e-12 0.00694568833028 +1.0474915075073294 0.6458611938880667 663.247341732319 2.4274809832e-12 0.00688328994653 + 1.048873224774616 0.7349544711475071 663.437712582278 2.4345878493e-12 0.00783055730456 +1.0502609990521303 0.6704751930123687 661.680105822817 2.4345676745e-12 0.00716253945834 + 1.05165491888596 0.6832003201721754 659.215784749754 2.4319431021e-12 0.00732576282605 + 1.053055039072845 0.6636690489173206 656.644590821582 2.4289121619e-12 0.00714419967009 +1.0544611464064566 0.6730602360117014 655.132976637351 2.4297966087e-12 0.00726201035307 +1.0558735617089954 0.6402690060285702 654.965830029385 2.4356886448e-12 0.00690997103244 +1.0572922417354687 0.6613108095237584 648.839054543662 2.4193927267e-12 0.00720445328373 +1.0587173339676437 0.6516651935465718 643.805405369669 2.407099059e-12 0.00715487906290 +1.0601485599089917 0.6813790053291507 642.004469056580 2.4068598583e-12 0.00750210412297 + 1.061586354645098 0.6608176392685714 643.324670939581 2.4183555888e-12 0.00726078891887 +1.0630305736585912 0.6968073514746599 644.885719182378 2.4308242909e-12 0.00763769576577 +1.0644811431409018 0.6830890192839291 644.266701420843 2.4351231404e-12 0.00749452321529 +1.0659383029978715 0.7085391381304351 639.583210029736 2.4240439403e-12 0.00783067466673 +1.0674019186938088 0.6696957024962414 634.024411854796 2.409579364e-12 0.00746627398641 +1.0688723043279118 0.6890747688949312 628.376490065823 2.3946986726e-12 0.00775137612309 +1.0703492337403808 0.6534051337117308 626.006452560735 2.3922640382e-12 0.00737795706233 + 1.071832827868465 0.6470549954960283 631.140879374890 2.4185758746e-12 0.00724681666990 +1.0733232908962602 0.6446524886541226 629.291202825291 2.4181991533e-12 0.00724113082322 +1.0748203215737775 0.6365313931778984 627.765635255118 2.4190707667e-12 0.00716728510073 +1.0763244473414375 0.6014322111213072 627.833930205113 2.4261100085e-12 0.00677133487326 + 1.077835379173512 0.6176701833952326 627.166575004992 2.4303402043e-12 0.00696155283559 +1.0793530399120534 0.6214669341353048 625.479449019646 2.4306329448e-12 0.00702323778187 + 1.08087788565453 0.6156352456064735 618.185058477423 2.4090791222e-12 0.00703942785631 +1.0824096678294015 0.6000153708859466 612.042477017184 2.3919064308e-12 0.00692968036043 +1.0839484995368234 0.6212496668311465 617.354555022832 2.4195313351e-12 0.00711318170464 +1.0854944980432433 0.6080061323607777 619.938878638191 2.4365954199e-12 0.00693252552035 + 1.087047709455241 0.6054717652389316 615.286378092423 2.4252348923e-12 0.00695583042963 +1.0886080340484907 0.6038088988741593 613.327307418644 2.4244580206e-12 0.00695888402546 +1.0901757231127935 0.6072879326153242 618.745897288308 2.4529271067e-12 0.00693768712033 +1.0917507114693743 0.581168053358208 615.136272117670 2.4456685606e-12 0.00667825176599 +1.0933330896356435 0.6016536646077978 595.311495897318 2.3737148712e-12 0.00714388883463 +1.0949228576677552 0.5757618243004833 591.102707505968 2.3637921721e-12 0.00688513258789 +1.0965200715201024 0.5720323613492131 597.537442593697 2.3965008787e-12 0.00676687050190 +1.0981249018261041 0.5526612201279401 597.350818349656 2.4027702169e-12 0.00653976163658 +1.0997372244395476 0.5223546815403989 602.261044969924 2.4296399582e-12 0.00613074297027 +1.1013572598412307 0.5111907499517534 596.789753472840 2.4146661434e-12 0.00605471937880 +1.1029849203501643 0.5217981403241715 595.275384371687 2.4156631318e-12 0.00619607967423 +1.1046203818291214 0.5071807865353839 596.455397036120 2.4276349113e-12 0.00601059147442 +1.1062637273519829 0.5257393077602721 594.114737567392 2.4253083849e-12 0.00625507489661 +1.1079147773366937 0.5108950870685341 591.879951010766 2.4234029727e-12 0.00610141391254 +1.1095738041365837 0.5253411384314259 590.680266008564 2.4257394363e-12 0.00628667978469 +1.1112409444605764 0.5154502249685488 586.689093382572 2.4165944938e-12 0.00621027897264 +1.1129159403839652 0.5371935846404188 584.347022405632 2.4142089646e-12 0.00649818951289 +1.1145991494660794 0.524107650862766 583.997599211480 2.4200691386e-12 0.00634368819784 +1.1162905202529045 0.5269057726708642 582.852798927262 2.4226610481e-12 0.00639008243952 + 1.117989952955742 0.5265821948266143 580.899612063716 2.4218998756e-12 0.00640763071786 +1.1196978530552606 0.5441191784702878 575.791871970474 2.4079447507e-12 0.00667976054923 +1.1214140310763452 0.5321076095647187 577.906508280390 2.4242022716e-12 0.00650840057975 + 1.12313863217999 0.5234061040677861 578.059881021148 2.4323096216e-12 0.00640027072814 +1.1248716329176798 0.5598052341087204 571.915694528678 2.4138886984e-12 0.00691890441618 + 1.126613117686139 0.5258844796562152 567.038106754387 2.400718008e-12 0.00655557059756 +1.1283632798467425 0.5011303174990496 568.797775928545 2.4156559266e-12 0.00622766408165 +1.1301220766082538 0.5131049890444898 566.041817261948 2.4114514981e-12 0.00640752208341 +1.1318896184619065 0.4883880254366141 567.111033249208 2.4235698831e-12 0.00608736441620 +1.1336659582675672 0.5001212816353833 564.726498176786 2.4209603403e-12 0.00625993119868 +1.1354510920324068 0.4866244411883766 565.070294114858 2.430069187e-12 0.00608728775374 +1.1372452665821025 0.4891370248769331 560.261076128432 2.4170076444e-12 0.00617124058087 +1.1390482618679425 0.47192586082239546 554.850819988853 2.401263285e-12 0.00601215176941 +1.1408604493931798 0.4820532924791452 553.045415162332 2.4010717745e-12 0.00616121902782 +1.1426816552177086 0.47293820470702713 552.506142901856 2.4063950107e-12 0.00605061720913 +1.1445121321825589 0.4853168892187471 552.389743657671 2.4136022654e-12 0.00621029441715 +1.1463519031341294 0.46935273997285043 554.144098491158 2.4290582088e-12 0.00598699693578 +1.1482009266506557 0.48488772143386477 552.042102777744 2.427656769e-12 0.00620871001609 +1.1500595217692602 0.4786185799214598 548.854632773703 2.4214598221e-12 0.00616402810639 +1.1519274860889794 0.4970042637658234 546.430400945843 2.4186021399e-12 0.00642921059586 +1.1538050370997313 0.49321518795809927 547.364231171814 2.4306396174e-12 0.00636931046367 +1.1556922281304682 0.5011233945202338 545.888302856763 2.4320218417e-12 0.00648893285437 +1.1575891741548254 0.4790735781632736 543.540425843859 2.4295176615e-12 0.00623021106578 +1.1594958041595147 0.4927723793824916 535.205465220168 2.4001489785e-12 0.00650815980407 +1.1614124004955804 0.4829184551734896 532.358745645300 2.3952817614e-12 0.00641212234757 +1.1633389101592324 0.49362309544060134 532.926874677976 2.4057994818e-12 0.00654726983929 +1.1652754817327162 0.47632911131721023 531.377178679188 2.4067967314e-12 0.00633631292028 +1.1672221364207747 0.4862314898193394 530.829405924066 2.4123554576e-12 0.00647471265429 +1.1691789641271644 0.4649810947871408 529.098191724826 2.4125568736e-12 0.00621199945897 +1.1711459748519795 0.47627473467178016 529.823919811827 2.4240016921e-12 0.00635416331930 +1.1731234569814313 0.4575224279044193 529.126494742076 2.4289928861e-12 0.00611202709264 +1.1751113056386455 0.46615741154104945 522.354927149419 2.4060408792e-12 0.00630811044876 +1.1771097053577613 0.4514546797167497 518.742160978310 2.3975337254e-12 0.00615169794710 +1.1791187738332385 0.4594162293091821 521.724197136871 2.4195543661e-12 0.00622440358801 +1.1811384425191793 0.4398326057088427 519.340206065628 2.4167562614e-12 0.00598642941605 +1.1831689432860875 0.4504747350380564 512.680122144030 2.3939732817e-12 0.00621092593310 +1.1852102788934629 0.43720219107403646 515.265312732475 2.4143544154e-12 0.00599768722008 +1.1872625699363273 0.4433826530803219 511.739144763636 2.4061433005e-12 0.00612438451266 +1.1893259328637886 0.4394433225872923 508.271364831351 2.3981520616e-12 0.00611138462880 +1.1914003485410145 0.45377634203940725 513.618884374058 2.4318440777e-12 0.00624501171639 + 1.193486077914145 0.44222833743483003 514.755319801614 2.4457657293e-12 0.00607264810281 +1.1955831861577462 0.4468378207341407 509.274028049176 2.4282333709e-12 0.00620198608158 +1.1976915837260158 0.4338536306851118 497.794092972703 2.3818753578e-12 0.00616064080673 +1.1998115021847404 0.447448741303316 499.792458420794 2.3999104554e-12 0.00632828431765 +1.2019430813610623 0.4313672622909612 504.396865435111 2.4306335037e-12 0.00604515156403 +1.2040863268859894 0.4475284002867346 497.590207674537 2.4063919808e-12 0.00635742384816 +1.2062414331041351 0.42918376669056235 500.136506656924 2.427371996e-12 0.00606578651766 +1.2084083370600456 0.44040995216896694 489.574216581100 2.3846533755e-12 0.00635873868096 +1.2105873840899852 0.43105279021252124 489.878838135284 2.3947504502e-12 0.00621976780921 +1.2127785194527212 0.4420642129934672 493.605394827455 2.42171029e-12 0.00633049764375 +1.2149817898393394 0.42481863857027546 493.604505664366 2.4305130091e-12 0.00608354658869 +1.2171974351583184 0.43347848414186896 491.030982461658 2.4266673659e-12 0.00624009269741 + 1.219425479800032 0.4182973052097743 488.132154225532 2.4211809275e-12 0.00605731335623 +1.2216659905668512 0.42923975826046623 485.838723350522 2.418668741e-12 0.00624511162723 +1.2239192242567039 0.4130256720294424 484.374253520094 2.4202813838e-12 0.00602737741944 + 1.226185203101892 0.4217791048567852 481.098143974559 2.4128210913e-12 0.00619703244787 +1.2284638761534257 0.4103662225913147 477.926481221932 2.4058313091e-12 0.00606936006240 +1.2307556544484877 0.42328687575110463 477.501572379664 2.4126692138e-12 0.00626602881815 + 1.23306050913629 0.40817354798992167 473.891054272532 2.4034029257e-12 0.00608833774858 + 1.235378468901255 0.4114229942014722 472.190775755271 2.4037918129e-12 0.00615890425131 +1.2377098291463982 0.40192682500880705 470.246524065160 2.4029380301e-12 0.00604162533108 +1.2400545533096239 0.4129777451697292 465.786103061624 2.3891719474e-12 0.00626718496760 + 1.24241281746224 0.3986132283526916 463.647189619497 2.3872547992e-12 0.00607710116695 + 1.244784766104799 0.41415830922342084 462.598396353516 2.3909580116e-12 0.00632841056488 +1.2471705634658996 0.4009398005950325 463.373645071531 2.4041542575e-12 0.00611617962593 +1.2495701671973174 0.4130189803823811 462.316229838955 2.4079071323e-12 0.00631485323104 +1.2519838617957912 0.39828259285525663 457.963180195241 2.3944585377e-12 0.00614742379786 +1.2544116612176401 0.409633935806575 456.751218495710 2.397392691e-12 0.00633940655301 +1.2568537704702938 0.3938889076029017 454.336789531313 2.3940141146e-12 0.00612813376702 + 1.259310244034565 0.4048455459465164 453.013217350346 2.3963797602e-12 0.00631700008877 +1.2617813698458669 0.3927184565237082 450.202834543652 2.3908687946e-12 0.00616602779320 + 1.264267009899656 0.4031577069317127 447.728131302835 2.3871037254e-12 0.00636492037024 +1.2667675197701274 0.39062107734615864 444.681022302915 2.3802453825e-12 0.00620925461646 + 1.2692831022248 0.40605783809416757 443.908715162710 2.3855579196e-12 0.00646586476997 +1.2718134612572483 0.3926838480598376 444.977549521598 2.4008456038e-12 0.00623788449676 +1.2743591708717643 0.4026862907946065 443.799841090030 2.4040867608e-12 0.00641375096472 +1.2769202998966216 0.3803176564731703 444.522517429872 2.4176901701e-12 0.00604762862332 +1.2794968758620644 0.3798056659425122 436.121623328250 2.3815811083e-12 0.00615582422130 +1.2820890548483108 0.37212315875319074 410.762478969276 2.252197378e-12 0.00640366085913 + 1.284696977244948 0.39071487690446155 427.704376703192 2.3546393419e-12 0.00645726551102 +1.2873208365650366 0.37676982919115715 431.697365230704 2.3863398447e-12 0.00616920370920 +1.2899608913564153 0.3857588614861733 426.512983185467 2.3673618256e-12 0.00639316695959 +1.2926169884082477 0.3784974714929335 424.295145575338 2.3647600445e-12 0.00630561296435 +1.2952894547318379 0.38991752587165046 422.212724535170 2.3628941908e-12 0.00652790505379 + 1.297978539627292 0.37375230217487915 419.124957033793 2.3553629704e-12 0.00630336920029 +1.3006843089540672 0.38627900558622597 416.780211159607 2.3519613984e-12 0.00655128367617 + 1.303406764073256 0.3676841151097924 412.217676143469 2.3359624032e-12 0.00630493549616 +1.3061463068002506 0.37889944798545455 412.986186771683 2.3501656621e-12 0.00648516212122 +1.3089029358941886 0.3626306759227081 411.478568120604 2.3514806028e-12 0.00622945008646 +1.3116769641668036 0.3713612821505195 405.102751396510 2.3248678559e-12 0.00647983310795 +1.3144685348499137 0.35926387338163407 400.937270844044 2.3107667839e-12 0.00633387530077 +1.3172775020341199 0.3740691404147334 400.185016770634 2.3162992704e-12 0.00660729120777 +1.3201044525987875 0.3622295742573601 400.998998038911 2.3309833764e-12 0.00638517800213 +1.3229492793408868 0.3723309357671441 398.377206904061 2.3257346729e-12 0.00660643292975 +1.3258124072836435 0.3533103998880279 395.069341932361 2.3164172155e-12 0.00632143218307 +1.3286936260289093 0.3658212763362942 389.808104181724 2.295513569e-12 0.00663361843779 +1.3315935315212517 0.35253269280951394 387.021756466466 2.2890645009e-12 0.00643867359805 + 1.334512017872734 0.3647869514429154 388.107696035020 2.3055605378e-12 0.00664384407112 +1.3374494530579115 0.35152127898430163 384.068928339578 2.2916232809e-12 0.00646956136996 +1.3404058834895376 0.3598657052727453 379.861628711138 2.2765509475e-12 0.00669649310078 +1.3433814805791733 0.3468609695897521 379.890560002686 2.2868438585e-12 0.00645400537517 +1.3463763996545715 0.35942596411078837 377.295412054390 2.2813598917e-12 0.00673380154552 +1.3493911937401026 0.3426448312543726 374.073391658010 2.27201847e-12 0.00647470160801 +1.3524257057309998 0.35271732000930955 373.398498761763 2.2781310238e-12 0.00667708045500 +1.3554800458556033 0.3358962489270611 369.215928995158 2.2627990297e-12 0.00643068320334 +1.3585546670955857 0.35571181474763197 368.163681340870 2.2665978815e-12 0.00682951301674 +1.3616496391114556 0.3336173763083891 367.350390119297 2.2719070177e-12 0.00641949031523 +1.3647652586615147 0.3449789126038968 365.775810971003 2.272532988e-12 0.00666668534710 +1.3679015282142537 0.33168778619115385 362.934874574032 2.2652579764e-12 0.00646000967973 +1.3710588837841677 0.3434019018903938 361.075307329649 2.2640671367e-12 0.00672260040549 +1.3742373296282997 0.33076170301834007 359.919664641845 2.2672966981e-12 0.00649594044543 +1.3774372566573243 0.34085423607622545 357.315811269337 2.2613885158e-12 0.00674293312251 +1.3806589182714133 0.3284958075939021 356.561339653195 2.2671818437e-12 0.00651220358878 +1.3839022477946805 0.33839072634644346 354.384147811136 2.2639373971e-12 0.00674957700456 +1.3871677453923272 0.3257076879907972 352.994586125315 2.2657151347e-12 0.00652217362549 +1.3904553980235885 0.3364095648061851 351.091423658725 2.2641940395e-12 0.00677299110401 +1.3937655831120415 0.3239083101385412 349.456906050883 2.2643960924e-12 0.00655180334794 +1.3970985205652364 0.33407906623587863 348.676077682996 2.2701550201e-12 0.00677266355970 +1.4004544241774977 0.3188932623476964 343.828954226166 2.2493638083e-12 0.00655594479581 +1.4038335473605112 0.33032649528789204 343.132622634568 2.2556542951e-12 0.00680477532727 +1.4072360422493864 0.3141546728125581 342.808712052971 2.2644620516e-12 0.00647774822919 +1.4106621664818155 0.3235864900009194 339.078134137099 2.2507389127e-12 0.00674563731555 +1.4141122391626086 0.30944869095915617 337.355394797341 2.2502704586e-12 0.00648385630002 +1.4175864524783464 0.3188493423689796 338.195538174481 2.2669726414e-12 0.00666423100445 +1.4210849794265215 0.30319247111934683 333.561119899252 2.2469572953e-12 0.00642503326048 +1.4246083522440398 0.31451395566213974 329.968994481058 2.2337954543e-12 0.00673750620646 +1.4281565068148825 0.30468787514801055 327.684886277123 2.2293964943e-12 0.00657250843159 + 1.431729506889234 0.3155795492266339 328.475003302005 2.2459680495e-12 0.00679108109565 +1.4353282957859161 0.3003330174157737 328.467245171135 2.2572198367e-12 0.00646313759982 +1.4389524936161464 0.3085110700054551 323.656331384679 2.2354055069e-12 0.00673781427540 +1.4426029081486185 0.2918437066194698 319.080223236389 2.214995208e-12 0.00646521297897 +1.4462792549975718 0.3071348845287636 321.285738847825 2.2416874446e-12 0.00675725158485 +1.4499821716552295 0.2924003596098482 318.623816578886 2.2345128539e-12 0.00648682314752 +1.4537119113150305 0.30385566584435436 314.442015002251 2.2165450658e-12 0.00683060480011 +1.4574685899763624 0.2928192731521884 315.234894663017 2.2336338904e-12 0.00656595291041 +1.4612525072758935 0.3029077040559723 313.498952139741 2.2328828051e-12 0.00682977845823 +1.4650640240588766 0.28913678843633894 310.769124909892 2.2250018168e-12 0.00657654625141 +1.4689034683283702 0.29891951871737243 310.656567286308 2.2358689696e-12 0.00680152229677 +1.4727710863035506 0.28542073674494883 305.871449519302 2.2130373167e-12 0.00659597456737 + 1.476667174315558 0.296875636854027 304.548993301245 2.2151426905e-12 0.00689048483377 +1.4805918906353512 0.28083979702018297 305.548880544532 2.2342446503e-12 0.00649696226527 +1.4845457078488258 0.28656461089227814 303.408721048084 2.2304603339e-12 0.00667616232260 +1.4885289814743705 0.2736798185566033 294.034906054456 2.173165375e-12 0.00657924825197 +1.4925417208862464 0.28879097380861274 302.224035521650 2.2457492169e-12 0.00675440356816 +1.4965846330964558 0.2720269800994383 298.896282119176 2.2330701859e-12 0.00643315266906 +1.5006576618997614 0.2743176508590842 296.877115513089 2.2300740221e-12 0.00653144722589 + 1.504761413420241 0.26272644507800824 283.636477139204 2.1422821634e-12 0.00654747875059 +1.5088960061063914 0.27968274505235174 292.455519620774 2.2210469418e-12 0.00675986841093 +1.5130619103047387 0.2657074582526556 289.953575821567 2.2142220082e-12 0.00647750365585 +1.5172593787386073 0.2766280226033677 288.116448850689 2.2124171267e-12 0.00678672903220 +1.5214887679931992 0.2622749951069836 284.219907229222 2.1946804333e-12 0.00652281085175 +1.5257504525476668 0.27412090583465787 284.237713570541 2.2071305036e-12 0.00681699300061 +1.5300446555812952 0.25955960688289387 280.188209764636 2.187949863e-12 0.00654816542203 +1.5343718263234196 0.2708063818639833 279.849923277474 2.1976863982e-12 0.00684015736776 + 1.538732276391054 0.2594061070320821 275.912543729198 2.1790985387e-12 0.00664570626458 +1.5431263865691158 0.26938966694002886 276.418699928338 2.1955822552e-12 0.00688883692517 +1.5475544557635115 0.2549809236846403 273.426951179572 2.1843010627e-12 0.00659172014572 +1.5520168916188706 0.26502068408202417 271.056107283641 2.1778671357e-12 0.00691119209832 +1.5565139969429576 0.24923083699936244 267.874899670048 2.1647980065e-12 0.00657661086179 +1.5610462467467285 0.26066490996973396 268.795362789867 2.184905249e-12 0.00685477478051 +1.5656139135569136 0.24638061832502908 265.594721596397 2.1715412383e-12 0.00655721603084 +1.5702174134524622 0.254147139305747 265.087873690806 2.1801618576e-12 0.00677684815596 +1.5748571639686426 0.23698264027647636 259.754778871762 2.148944425e-12 0.00644889607477 +1.5795334168747122 0.24892988357689771 259.865436188252 2.1626460836e-12 0.00677112618819 + 1.584246660528156 0.23457823200999953 259.133179007679 2.1694413852e-12 0.00639877849563 + 1.588997222099637 0.24612500427185988 247.049011921480 2.080696297e-12 0.00704214569960 +1.5937856667673138 0.23682522194556027 254.249275180041 2.1542636538e-12 0.00658416370342 + 1.598612035536564 0.2502402368293649 252.326296285823 2.1509383695e-12 0.00701014530693 +1.6034770661003752 0.23848966723746803 249.107294528951 2.1364426913e-12 0.00676730130655 +1.6083810509067409 0.2488043920479568 245.480795295820 2.1182378029e-12 0.00716428595125 +1.6133246243049066 0.23440385253041995 242.633767848072 2.1065611211e-12 0.00682882358927 +1.6183078003659084 0.24447006985794317 239.237511073147 2.0899256085e-12 0.00722318622653 + 1.623331012496789 0.23523812655262527 239.838440332061 2.1082021872e-12 0.00693300177694 +1.6283949807298252 0.2492657671367102 240.460352971831 2.1268765722e-12 0.00732742782577 +1.6335000630782803 0.23071702639022199 237.009684024047 2.1095202541e-12 0.00688091107263 +1.6386465526621865 0.23975690589030904 228.398638920135 2.0457067865e-12 0.00742010420878 +1.6438348663650428 0.22366438881004044 227.829730791664 2.0535537262e-12 0.00693935069935 +1.6490655574884148 0.23686528916999558 228.139076764699 2.0694494332e-12 0.00733895346436 + 1.654339092369119 0.22330342525828883 226.236787834317 2.0653401496e-12 0.00697693295513 +1.6596556074063582 0.2354873789855072 224.816355272543 2.065585399e-12 0.00740409741367 + 1.665016066835468 0.2200980016152683 221.926184846960 2.0522237136e-12 0.00701035390303 +1.6704204186673461 0.2291950255553954 219.817099782055 2.045937444e-12 0.00737014622969 +1.6758693456217333 0.21352619647042195 217.172348122227 2.0345301884e-12 0.00694990755478 +1.6813634072745256 0.22520768163221166 208.828595332208 1.9692118791e-12 0.00762299479771 + 1.686902914752053 0.213620999670457 212.342398141424 2.0155621407e-12 0.00711114633937 +1.6924883862025286 0.22411754363073316 211.346035299639 2.0194113682e-12 0.00749573353544 +1.6981200666205702 0.21043461116901147 208.289283478927 2.0034707726e-12 0.00714138811802 +1.7037985825782809 0.22001044692726854 204.976670661060 1.984815931e-12 0.00758702053013 +1.7095246133186046 0.20493508959398715 200.998858433907 1.9594022573e-12 0.00720701002053 + 1.715298426972548 0.21687823865683428 202.019210108957 1.9826741506e-12 0.00758849582707 + 1.721120395588853 0.20364886815616248 198.212861137182 1.9585453395e-12 0.00726244006061 +1.7269912906939793 0.21057584044530603 197.412471373118 1.9639669598e-12 0.00753991323202 + 1.732911326608031 0.1954744151786506 190.711230825275 1.9103293441e-12 0.00724512769424 +1.7388809874956974 0.20891411024129325 187.624292695741 1.8923788397e-12 0.00787065899198 +1.7449008648691056 0.19537969362593807 188.742865350476 1.9168642457e-12 0.00731713842684 +1.7509715786773745 0.20632937636206575 185.748581309539 1.899603653e-12 0.00785177689629 +1.7570933920766574 0.1928108317540393 184.464915133670 1.8996901218e-12 0.00738839392466 +1.7632669551919236 0.20301933940886402 180.785926208649 1.8749083917e-12 0.00793789194132 +1.7694925283332108 0.18626171730393298 179.794205339815 1.8778134871e-12 0.00732285277852 + 1.775770834889785 0.1966534579845818 176.943400062379 1.8611762547e-12 0.00785596626973 +1.7821022393478836 0.1833476556409023 174.545854518289 1.8490730449e-12 0.00742503001065 +1.7884873184208876 0.19419864473130027 173.752880774410 1.8538860691e-12 0.00790035436558 +1.7949264130736877 0.17930811389763082 170.942489390593 1.8370569423e-12 0.00741450750225 +1.8014202427109627 0.18955785885612267 168.837767894727 1.8275908553e-12 0.00793605343483 + 1.807969189522056 0.17379550522599269 168.573148504768 1.8380179391e-12 0.00728756653358 + 1.814573825449647 0.18248096555934598 162.778417591667 1.7878266365e-12 0.00792415822644 +1.8212345587820935 0.17062596286055454 159.094379540945 1.7602157378e-12 0.00758093318071 +1.8279518632043241 0.18353974539688817 161.417544876790 1.7991175685e-12 0.00803732959448 + 1.834726288593444 0.16771093183912444 158.212524962897 1.7764898323e-12 0.00749295114853 +1.8415582470610394 0.17741570863718817 154.923659502568 1.7525400994e-12 0.00809481101543 + 1.848448304335636 0.1645705450673216 153.104862040668 1.7449496412e-12 0.00759793398526 +1.8553969602509048 0.1772304020652293 152.117331456834 1.7467537194e-12 0.00823553686173 +1.8624046006719863 0.16380780551297752 150.474058534027 1.7409608438e-12 0.00769494195664 +1.8694719544524856 0.17006562073202852 148.863823964164 1.735427106e-12 0.00807532013896 +1.8765993186118681 0.1565667218477617 139.624114706657 1.6401472425e-12 0.00792631662820 +1.8837871886210775 0.1714395164600252 145.914577043950 1.7271961277e-12 0.00830509574030 +1.8910358937726035 0.15537187225779917 141.887129672463 1.6924733728e-12 0.00774037117087 +1.8983463632697999 0.16570684546175585 139.059619135440 1.671595687e-12 0.00842309705776 +1.9057185445209412 0.15140764473819435 138.719731577579 1.6804866126e-12 0.00771510702006 +1.9131531579206162 0.16215121430288887 136.464761365483 1.6660932124e-12 0.00839908692681 +1.9206508456035205 0.14781886532991173 134.491580150219 1.6548980219e-12 0.00776903644781 +1.9282116786110135 0.15901202544827883 132.493653111690 1.6431748895e-12 0.00848334805712 +1.9358362235541149 0.14313791068685386 131.889119317998 1.648638698e-12 0.00767146126024 + 1.943525039231293 0.1530575853285436 124.462073351593 1.5681825209e-12 0.00869261043599 +1.9512784531821132 0.14160850264049052 126.719403205057 1.6093885745e-12 0.00789911801777 +1.9590970892836534 0.15241106664870688 126.113919155397 1.6145601827e-12 0.00854251738160 +1.9669811266167558 0.13710051955550237 123.281053102535 1.5910213897e-12 0.00786095220594 +1.9749310272866345 0.14616436816293715 121.083303430917 1.5753150562e-12 0.00853276221830 +1.9829472181859453 0.1319870912138794 119.448692204879 1.5666897606e-12 0.00781056497197 + 1.991030448185907 0.14320189749391718 118.335772766644 1.564772307e-12 0.00855391858196 +1.9991805047475053 0.12810212122142567 116.456505882088 1.5525552665e-12 0.00777543967812 +2.0073980179195132 0.13869678408776218 114.944067569921 1.5450154998e-12 0.00852927703145 +2.0156835486123454 0.12555095050070655 113.576673100236 1.5392641077e-12 0.00781381730244 + 2.024037130035415 0.13479008188030342 111.225679768849 1.5199220521e-12 0.00856614180068 +2.0324593109595424 0.12045423430703325 109.128171924720 1.5036954898e-12 0.00780220904068 + 2.040950597598793 0.1315658604426766 107.396251535575 1.4922218863e-12 0.00865937361053 + 2.049510803782166 0.11668350596414666 105.844253579514 1.4830199921e-12 0.00779245989890 + 2.058140514130872 0.12817370096838196 103.637745159546 1.4643581076e-12 0.00874205148552 +2.0668402565414787 0.1146063052236874 101.349750484923 1.4441616386e-12 0.00799315470293 + 2.075609958861612 0.12557978680914678 100.277201924806 1.4410299123e-12 0.00885217365700 +2.0844499851401226 0.11314589256615151 98.348527585618 1.4253782166e-12 0.00813211143664 +2.0933606363973127 0.12371388459486941 96.341112466490 1.4082477331e-12 0.00907693400397 +2.1023422361414728 0.10880693721593444 95.830497217194 1.4128298738e-12 0.00802574274603 + 2.111394882469336 0.11934198325517191 94.398907839071 1.403735218e-12 0.00893631917460 +2.1205186830541027 0.10478564324322374 92.700416976052 1.3904173909e-12 0.00799010500648 +2.1297138636932536 0.11592985778937936 92.037875257088 1.392478176e-12 0.00890350710755 + 2.138980789001689 0.10152874310621926 90.694620982748 1.384122713e-12 0.00791297639853 +2.1483194252952846 0.11230276335031084 89.546588836011 1.378561211e-12 0.00886489889830 + 2.157729988211096 0.09671068294197328 88.186078494213 1.3695362203e-12 0.00775187588046 +2.1672123752529107 0.10763697090773876 83.452141103778 1.3074338495e-12 0.00911709278299 +2.1767670983445426 0.09519565536300499 85.143095731818 1.345713666e-12 0.00790314740362 +2.1863938653157806 0.10647544862094951 83.844197358333 1.336931355e-12 0.00897653767175 + 2.196092847856433 0.09265163874018174 83.184256557292 1.3382024841e-12 0.00787307441605 +2.2058639085496345 0.1030242814109442 80.924241729483 1.3134555071e-12 0.00899898123339 + 2.215707358160654 0.08894659487603057 80.289967225888 1.3148172026e-12 0.00783069730910 + 2.225622854208662 0.09967027237795205 78.772057789044 1.3015313473e-12 0.00894387755778 + 2.235610698082088 0.08600040983346324 77.396683800353 1.2903098374e-12 0.00785435558171 + 2.245670434015629 0.0966670886614709 75.904273844801 1.2768432041e-12 0.00900212004476 +2.2558024404775705 0.08273906580641961 74.403560856900 1.2629179682e-12 0.00786048390956 + 2.266006135944482 0.09378989308397957 73.160175938782 1.2530725066e-12 0.00906178367471 +2.2762816368436645 0.0798558989796186 72.235545229260 1.2484818755e-12 0.00781427046427 +2.2866288299779898 0.0910344922373857 71.012409288855 1.2385253332e-12 0.00906158393335 + 2.297047260002892 0.07773175989811922 69.445050641669 1.2222511573e-12 0.00791206037115 +2.3075370142377367 0.08987867096899771 69.021620185800 1.2259190642e-12 0.00920457801857 +2.3180978040004216 0.07622861132495234 67.512660130614 1.2101188571e-12 0.00798114458761 +2.3287293086234215 0.08774004742279012 65.864740414250 1.1914348515e-12 0.00941623461993 + 2.339431166536907 0.0747305602913234 65.242399730478 1.191049378e-12 0.00809656305416 +2.3502031488695625 0.08583578977155144 63.841556939034 1.176233582e-12 0.00950380087602 +2.3610448020200296 0.0726695747998662 62.905272296520 1.1697008349e-12 0.00816578541817 + 2.37195597219257 0.08340578915548659 61.875435273602 1.1612101174e-12 0.00952818804374 +2.3829361757265333 0.06972064604908315 60.388944677436 1.143830198e-12 0.00816086800081 +2.3939848123472154 0.08076234246389959 60.016509511212 1.1473417907e-12 0.00951197201629 + 2.405101740523819 0.06688102542768498 59.320183591813 1.1445866832e-12 0.00796953215935 +2.4162865344377935 0.07799921942247037 57.547171788824 1.1207278108e-12 0.00958073135463 + 2.427538213325852 0.06503429532050517 57.167977043050 1.1237359421e-12 0.00804122112941 +2.4388566659903566 0.07613668351374042 56.199742248455 1.1150290317e-12 0.00957617385877 + 2.450241404731836 0.06260414958452087 54.594074516441 1.0933080707e-12 0.00810569023951 +2.4616916046171164 0.0736743705091738 54.196727030651 1.0955183242e-12 0.00960894626149 +2.4732067531820885 0.0603738451195868 53.223038480170 1.0859249439e-12 0.00801828636345 +2.4847864860026543 0.07264723022928565 51.827598977239 1.0673787185e-12 0.00990809956307 +2.4964297173952845 0.06029575154837807 51.657536757446 1.073869921e-12 0.00825059767642 + 2.508136120488695 0.07136509232880052 50.850056010082 1.0670209291e-12 0.00992034525807 + 2.519904662144412 0.057833501754242296 49.845855832607 1.0557876418e-12 0.00820130234935 +2.5317351032588524 0.06941163226897515 48.838261037725 1.0441815504e-12 0.01004626098670 + 2.543626459741413 0.056033792901755426 47.882951134836 1.0333962333e-12 0.00827182813323 +2.5555779628671536 0.06776903521641385 47.032215425411 1.0245968172e-12 0.01018516941663 + 2.567588784011316 0.05515105908633902 46.254214316892 1.0171419006e-12 0.00842820206549 + 2.579658281027497 0.06776260049149221 45.538561906035 1.0108412801e-12 0.01051824163324 +2.5917854496629817 0.05543896183536353 44.949826179709 1.007176093e-12 0.00871805216084 + 2.603969469118693 0.06679475587188934 44.260021846405 1.0010659667e-12 0.01066751184435 + 2.616209738471815 0.053927404418924046 43.341822624912 9.8953596498e-13 0.00879497760825 + 2.628505424184944 0.06577884653570312 42.648082001273 9.8287108041e-13 0.01090232539233 +2.6408549470874183 0.05323307098057201 42.029789788933 9.7774501444e-13 0.00895275487961 +2.6532583114424866 0.06579520457423801 41.232071098306 9.6821880608e-13 0.01127954243161 +2.6657139200368314 0.05339655673056054 40.470756713302 9.5928510582e-13 0.00932619127844 + 2.678221129066071 0.06456344758464479 39.780945706131 9.5180342736e-13 0.01147212843484 +2.6907792326866535 0.05192247661100278 39.133341470564 9.4511001202e-13 0.00937866142098 +2.7033865363301195 0.06404428443916431 38.491590913091 9.3834263945e-13 0.01176107195448 +2.7160429736721596 0.051873916564967364 37.834384653577 9.3097763128e-13 0.00969158379454 +2.7287468156447967 0.06184578304784607 37.190432183080 9.2371289444e-13 0.01175469211072 + 2.741497172152789 0.049003340706099435 36.532649979703 9.15874732e-13 0.00948149680657 +2.7542935837493134 0.06116306730424123 35.791964050645 9.0570192005e-13 0.01207914284739 +2.7671344221039424 0.04826835145403151 35.180175832360 8.985408303e-13 0.00969832762821 + 2.780018957931421 0.06032095020435164 34.673974753987 8.9387839553e-13 0.01229693666702 +2.7929459116623807 0.04734827009930301 34.141082171083 8.8834493466e-13 0.00980300500456 + 2.805914740360298 0.05950772799168934 33.588082106866 8.8209110839e-13 0.01252335102419 + 2.81892388753323 0.04703976607569151 33.016005398390 8.7512587248e-13 0.01007100977027 + 2.831972336164923 0.059665748557962056 32.441410298544 8.678747159e-13 0.01300043124313 +2.8450594100618134 0.04740105881720902 31.860678926319 8.6023478998e-13 0.01051635910264 + 2.858183654777948 0.05984909211568301 31.271668185596 8.521393271e-13 0.01352816551863 +2.8713444243585258 0.047692980591720224 30.694745833002 8.4413890978e-13 0.01098304628770 + 2.884539875942028 0.0599975329252137 30.177879781458 8.3757000352e-13 0.01405325929395 + 2.897770173335171 0.04766268822454997 29.753424064625 8.3338201739e-13 0.01132332498658 +2.9110330543749527 0.06020060869722859 29.252611996436 8.2687187741e-13 0.01454683867574 + 2.924328553948569 0.04754580625062687 28.741457788938 8.1986136047e-13 0.01169326561743 + 2.937654416205783 0.06032735625860078 28.256673251464 8.1339544378e-13 0.01509126532619 +2.9510106967700214 0.048045774191701335 27.799848076107 8.0753859344e-13 0.01221645400195 + 2.964395240195053 0.06085151293635593 27.349409662939 8.0167708159e-13 0.01572735952266 + 2.97780830298386 0.0488808714967869 26.892791823688 7.9544225965e-13 0.01284799743197 +2.9912475572986392 0.062006663710861866 26.425014341089 7.8867712149e-13 0.01658652943438 +3.0047127195708905 0.049617450963165825 25.966219291306 7.8197690812e-13 0.01350697572858 + 3.018202553461054 0.06328545182475037 25.519731925510 7.7544708802e-13 0.01752912217112 +3.0317162654024257 0.0511089002106795 24.988134908364 7.6610843956e-13 0.01445756270141 + 3.045252682447505 0.06502662497349028 24.538063169519 7.5904276679e-13 0.01873196442849 +3.0588106090899787 0.053416652130439175 24.236294683803 7.5639856638e-13 0.01557911674326 +3.0723888872134673 0.06674692668592115 23.859725445527 7.512718396e-13 0.01977416813789 +3.0859873270328606 0.054979973047105564 23.465471696235 7.4541282784e-13 0.01656180339029 +3.0996040787991395 0.06831368534795657 23.069224970245 7.3930688173e-13 0.02093182530785 +3.1132385743262785 0.05682653849482954 22.661886402801 7.3265608526e-13 0.01772505269664 +3.1268897817109464 0.07047348643024595 22.293884708525 7.2709338662e-13 0.02234459035775 + 3.140556887603248 0.05884456412169073 21.960008411725 7.2247883393e-13 0.01894114544428 + 3.154238648678162 0.07262573588346857 21.594899759559 7.1667059736e-13 0.02377232966673 +3.1679343885014277 0.06116751078360751 21.248793081933 7.1132147614e-13 0.02034786888809 +3.1816431342019458 0.0748316581751436 20.919986311486 7.0638850725e-13 0.02528461606889 +3.1953637784483138 0.063920215421267 20.590630985978 7.0127695617e-13 0.02194325071778 + 3.209095621147505 0.07799759386394656 20.260917510908 6.9599115644e-13 0.02721162565488 +3.2228378197717134 0.06698293793033004 19.929586351814 6.904853756e-13 0.02375736653571 +3.2365893896583797 0.0808069828223043 19.594061526145 6.8466633889e-13 0.02915122535073 + 3.250349548191665 0.0703971906301067 19.281603093068 6.79489222e-13 0.02580741941743 + 3.264117382415445 0.08462691139856947 18.967828361951 6.7410639107e-13 0.03153721004130 +3.2778920136971346 0.07412287955903721 18.628162516880 6.6763423681e-13 0.02812643280131 +3.2916727378425237 0.08785103522087648 18.252306435827 6.5967549215e-13 0.03402213181213 + 3.305458826111812 0.07793701386150162 17.927578715270 6.5337789705e-13 0.03072943070993 +3.3192489934468696 0.09148659088786246 17.694467706765 6.5027411103e-13 0.03654705045929 +3.3330432366512133 0.0813202234937455 17.477400002350 6.4764649258e-13 0.03288926199174 +3.3468405529538887 0.09549257110532501 17.232643642594 6.4387453539e-13 0.03916968421547 +3.3606396949040023 0.08380524029595217 16.958860760279 6.3888085963e-13 0.03493066808421 +3.3744402630197317 0.09864147675912095 16.694968242086 6.3411552042e-13 0.04176441081062 +3.3882417206589466 0.08865971340741123 16.408052486844 6.2832610725e-13 0.03819457459684 + 3.402043277920716 0.10340244230537876 16.123528313918 6.2247089485e-13 0.04533181449287 + 3.41584420449948 0.0936554091408023 15.904207913261 6.1899544119e-13 0.04162490081829 + 3.429643640441855 0.10888117547754218 15.694913848438 6.157950969e-13 0.04903726676487 +3.4434410573931142 0.09917516601475218 15.480282864516 6.1227072688e-13 0.04528521509064 +3.4572358047757015 0.11472140169753645 15.246644684640 6.0787121823e-13 0.05318664011219 + 3.471027564340146 0.10344778262131417 15.012060881374 6.033033532e-13 0.04870945382402 +3.4848148793920353 0.1203462468991082 14.787757438448 5.9901961022e-13 0.05752579423335 + 3.498598088445921 0.110426043401737 14.580194152669 5.9529291436e-13 0.05353534369555 + 3.512376036215796 0.12581899713706085 14.367770781746 5.9124938058e-13 0.06189979621457 + 3.526148460358045 0.11680617853883386 14.151244009491 5.86914857e-13 0.05834499230789 +3.5399144917274143 0.13291694279971583 13.931920529806 5.8233893612e-13 0.06743754407900 + 3.553673834680306 0.12246236027196995 13.717714535463 5.778514233e-13 0.06310347203600 + 3.56742573921698 0.13866135256288561 13.515693009463 5.7375634168e-13 0.07251861551219 +3.5811699060296487 0.12832826425843738 13.324553799237 5.7000914625e-13 0.06807725505952 +3.5949055912025214 0.14512200052856697 13.138550989605 5.6637196367e-13 0.07807611166290 +3.6086325605374276 0.13647785167741372 12.957445343837 5.628387755e-13 0.07445179669816 +3.6223501268922598 0.15184255444843386 12.773008993938 5.5905349466e-13 0.08402967311881 + 3.636057735020356 0.14166552870367852 12.569005933950 5.5429603169e-13 0.07967015210331 +3.6497553085266943 0.15859632381489663 12.368181694756 5.4955688289e-13 0.09063994859387 + 3.663441825711452 0.14903379047921061 12.169831400149 5.4480672226e-13 0.08656305525531 + 3.67711751954297 0.16296445897829673 11.970970444455 5.3991286465e-13 0.09622677512826 + 3.690781372437127 0.15740459900612233 11.762507862573 5.3446080797e-13 0.09459101407003 +3.7044333496442916 0.1761359060163592 11.583614184247 5.302332423e-13 0.10748211517055 +3.7180730143226364 0.16718174100957617 11.457429090108 5.2832638872e-13 0.10314164563347 +3.7316995754706976 0.1849292241362161 11.233125977313 5.2178702169e-13 0.11636900178954 +3.7453133255051174 0.17731484469854758 11.049017995859 5.1698660353e-13 0.11343675798100 + 3.758913341707658 0.19499317705970995 10.962807871096 5.1668484953e-13 0.12572741987694 + 3.772499389334433 0.1871790759961237 10.847303380012 5.1494333355e-13 0.12197417886016 + 3.786071335474515 0.19687418627388745 10.716014327781 5.123776384e-13 0.12986373256997 +3.7996287150119215 0.19555358930971872 10.575259430985 5.0927534253e-13 0.13070949966074 + 3.813171154840607 0.21291562008363576 10.444675568114 5.0657861205e-13 0.14409368897445 +3.8266984001899895 0.20604978118535083 10.316170167121 5.0390221107e-13 0.14118418500355 +3.8402102923819346 0.2211281222392071 10.186331110116 5.010800367e-13 0.15344706281808 + 3.853706058985126 0.21574664361803797 10.047942764837 4.9775269632e-13 0.15177466617821 +3.8671859115300644 0.23268030586452101 9.910572812745 4.9438826714e-13 0.16595611525578 + 3.880649489415119 0.22535622549041034 9.777156489449 4.9113479038e-13 0.16292562077863 + 3.894096324302824 0.24242746154940542 9.652862348770 4.8825735063e-13 0.17752441561960 +3.9075263208913538 0.23622738866204707 9.534093577350 4.8558194625e-13 0.17513914681529 +3.9209391027013307 0.2539778297194166 9.416397786584 4.8288563715e-13 0.19065289399789 + 3.934334645789368 0.24764653417485194 9.287768610402 4.7954931919e-13 0.18847478565020 + 3.947712401792979 0.26502593536646607 9.155283827440 4.7592894849e-13 0.20462041170048 +3.9610722198515678 0.24765820635965 9.024021137609 4.7228583737e-13 0.19399253139278 +3.9744141559745674 0.2644012381209337 8.905696482722 4.6923827423e-13 0.20985918675847 + 3.987737705260677 0.2695599404097589 8.784074688949 4.6593838104e-13 0.21691606760895 + 4.001043065038957 0.2881040847966156 8.667554723700 4.6283089482e-13 0.23495528283551 + 4.014329197776105 0.2777981591239771 8.588551854678 4.6166314695e-13 0.22863452523384 + 4.027596662286301 0.2996106419867815 8.491497772869 4.5946828741e-13 0.24940509768764 + 4.040845509450447 0.2934455938688699 8.378041107250 4.5631660996e-13 0.24758110491248 + 4.054074888440007 0.2786133476929812 8.266631424170 4.5320156976e-13 0.23823509276421 + 4.067285143585393 0.3039817769648034 8.157471097203 4.5013634636e-13 0.26340523164668 + 4.080475494989134 0.3219840282000855 8.050308460976 4.4710895328e-13 0.28271848098214 + 4.093646057522934 0.31480792648899153 7.944692017976 4.4409608403e-13 0.28009217985439 + 4.106797033354939 0.3321025636256085 7.841182884392 4.4113077773e-13 0.29938017342423 +4.1199280222783825 0.3250468622306562 7.739705318584 4.3821070245e-13 0.29686154484586 + 4.133038942129244 0.3363744366390884 7.639766298350 4.353097207e-13 0.31122559118927 +4.1461295421720505 0.3201160796062884 7.541518947095 4.3243800768e-13 0.30004131062252 + 4.159199794675065 0.3561307944755739 7.445022935574 4.2960062354e-13 0.33812390760611 + 4.172249316740064 0.34944307239715344 7.350055255167 4.2678623662e-13 0.33606108249564 + 4.18527856539466 0.3489491050419306 7.256690597542 4.2400076685e-13 0.33990368513267 + 4.198287056555783 0.35677068003199985 7.165125451403 4.2125721844e-13 0.35196359767391 + 4.211274252456725 0.37835288020468943 7.075072719565 4.1854027491e-13 0.37800585535533 + 4.224241319357192 0.3724783481749601 6.986530610697 4.1585153017e-13 0.37685289620376 +4.2371869116942955 0.3934703805690348 6.899816951798 4.1321122487e-13 0.40309449477892 + 4.250111496690112 0.3883836182085611 6.814135437829 4.105733018e-13 0.40288633076933 + 4.263014796725578 0.4078847695367911 6.729717633081 4.079527073e-13 0.42842325592910 + 4.275896954596135 0.405021280964597 6.647206700398 4.0538991637e-13 0.43069620983607 + 4.288757823159552 0.42172155661995103 6.566145314916 4.0285878023e-13 0.45399147922267 + 4.301597355172801 0.42319009444344025 6.486323281300 4.0034775756e-13 0.46117875671087 + 4.314415248882515 0.44423591510983335 6.407979199074 3.9787282258e-13 0.49003259046716 +4.3272114976696905 0.4415617443721943 6.330627006508 3.9540510123e-13 0.49303426726927 + 4.3399867389942 0.4592946822020214 6.254335596323 3.9294999093e-13 0.51908995747617 +4.3527395343168145 0.4512850523042823 6.180010750618 3.9056550872e-13 0.51617160389531 + 4.365471017691944 0.4727321925327024 6.106736508461 3.8819567926e-13 0.54719029673480 + 4.378180601883224 0.4690949360279945 6.034430425796 3.8583615976e-13 0.54948627740644 + 4.390868431673835 0.4899361128801276 5.963577279875 3.8351909926e-13 0.58071760398415 + 4.403534759589872 0.4853402928745819 5.893702335639 3.8121532624e-13 0.58209053943451 + 4.416178460148253 0.5016828333112663 5.824797802436 3.7892510669e-13 0.60880859787671 + 4.428800952034485 0.4957097971379569 5.757259299839 3.7667553229e-13 0.60861703386370 + 4.441401163707308 0.5114589913249225 5.690755122656 3.7444600302e-13 0.63529188904371 + 4.453979576113335 0.5108220162734709 5.625229874554 3.7223397844e-13 0.64189164552566 + 4.466535799728436 0.5300346931789736 5.560588633148 3.7003406202e-13 0.67377659420850 + 4.479069562225086 0.5286494782194124 5.496864836158 3.6784933039e-13 0.67980623043347 + 4.491581804766609 0.5471937425026004 5.434582961208 3.657161571e-13 0.71171691941510 + 4.504072269448035 0.544343770780877 5.373211234984 3.6360003123e-13 0.71609680174149 + 4.516539935546451 0.5662729629172291 5.312757775835 3.6150226438e-13 0.75342183370716 + 4.528985433774625 0.5608043556682579 5.253234823492 3.5942473349e-13 0.75460026667328 + 4.541409291368061 0.5816430547007814 5.194494105231 3.5735827504e-13 0.79149045103234 + 4.553810767794701 0.5797104976951648 5.136711995430 3.5531576152e-13 0.79773443505768 + 4.566190220135466 0.600702634141975 5.080078691769 3.5331146927e-13 0.83583679861260 + 4.578547370215166 0.6055946932730528 5.024539034178 3.5134270868e-13 0.85195808204907 + 4.590882251900911 0.6234358012072667 4.969496432003 3.4936869546e-13 0.88677153906392 + 4.603194993555947 0.62115875698909 4.915091178850 3.4739984492e-13 0.89331252717152 + 4.615485704754688 0.6361880818738977 4.861596283033 3.4545621373e-13 0.92499424014416 +4.6277541772567306 0.6529467844460851 4.808975358923 3.4353612439e-13 0.95974890766244 + 4.640000481508614 0.6599327839099729 4.757113118013 3.4163222292e-13 0.98059260991170 + 4.65222464132043 0.6542170651111999 4.706200531770 3.3975908642e-13 0.98261599806389 + 4.664426362335868 0.678917990313051 4.656037483003 3.3790315549e-13 1.03070228745427 +4.6766063177310775 0.663511094398034 4.606732490279 3.3607322607e-13 1.01809331544724 + 4.688763512792136 0.6803140795850057 4.558317029938 3.3427237082e-13 1.05496323010712 +4.7008994165726445 0.6551907173726306 4.510513025745 3.3248124805e-13 1.02677239783171 + 4.7130126868595 0.6484631331891134 4.463191642606 3.3069075214e-13 1.02700402572510 + 4.725103758581679 0.6504547627605822 4.416562820483 3.2891706665e-13 1.04103439060899 + 4.737172869348532 0.6387959438314537 4.370727493209 3.271685081e-13 1.03309631100420 + 4.749220136294534 0.6399573962747401 4.325361984425 3.2542158573e-13 1.04582975701696 + 4.761244906041078 0.6272879762741761 4.280518640630 3.2368064568e-13 1.03586452779251 + 4.773247565725653 0.5802400503444715 4.236592947865 3.2197633719e-13 0.96810698580308 + 4.785228515808053 0.6041481642727996 4.193397902485 3.2029542463e-13 1.01837980250516 + 4.797187475918006 0.5776343237825544 4.150972276232 3.1864162796e-13 0.98363856981327 + 4.80912401692406 0.5313944124405289 4.109007943712 3.1699194849e-13 0.91413932793259 + 4.821039063936418 0.48227569826435707 4.067525723497 3.1534859924e-13 0.83810312724498 diff --git a/sbpy/units/tests/data/hi05070405_9000036-avg-spec_ref.pdf b/sbpy/units/tests/data/hi05070405_9000036-avg-spec_ref.pdf index 5142f3e72..204bd1913 100644 Binary files a/sbpy/units/tests/data/hi05070405_9000036-avg-spec_ref.pdf and b/sbpy/units/tests/data/hi05070405_9000036-avg-spec_ref.pdf differ diff --git a/sbpy/units/tests/test_core.py b/sbpy/units/tests/test_core.py index fca60334a..2871f9cf2 100644 --- a/sbpy/units/tests/test_core.py +++ b/sbpy/units/tests/test_core.py @@ -35,6 +35,10 @@ def test_hundred_nm(): assert (1 * hundred_nm).to(u.nm).value == 100 +def test_albedo_unit(): + assert (1 * albedo_unit).to_value('') == 1 + + @pytest.mark.parametrize('wf, fluxd, to', ( (5557.5 * u.AA, 3.44e-9 * u.Unit('erg/(cm2 s AA)'), 0 * VEGAmag), (5557.5 * u.AA, 3.44e-9 * u.Unit('erg/(cm2 s AA)'), 0.03 * JMmag), @@ -110,68 +114,89 @@ def test_spectral_density_vega_undefinedsourceerror(): @pytest.mark.parametrize('fluxd, wfb, f_sun, ref', ( - (3.4 * VEGAmag, JohnsonV, None, 0.02865984), - (3.4 * VEGAmag, 5500 * u.AA, None, 0.02774623), + (3.4 * VEGAmag, JohnsonV, None, 0.09003754 * albedo_unit), + (3.4 * VEGAmag, 5500 * u.AA, None, 0.08716735 * albedo_unit), (1.56644783e-09 * u.Unit('W/(m2 um)'), 'V', - 1839.93273227 * u.Unit('W/(m2 um)'), 0.02865984), + 1839.93273227 * u.Unit('W/(m2 um)'), 0.09003754 * albedo_unit), (1.55728147e-24 * u.Unit('W/(m2 Hz)'), 'V', - 1.86599755e-12 * u.Unit('W/(m2 Hz)'), 0.02809415), - (3.4 * VEGAmag, 'V', -26.77471503 * VEGAmag, 0.02865984), - (3.4 * u.ABmag, 'V', -26.77471503 * u.ABmag, 0.02865984), - (3.4 * u.mag, 'V', -26.77471503 * u.mag, 0.02865984) + 1.86599755e-12 * u.Unit('W/(m2 Hz)'), 0.08826038 * albedo_unit), + (3.4 * VEGAmag, 'V', -26.77471503 * VEGAmag, 0.09003754 * albedo_unit), + (3.4 * u.ABmag, 'V', -26.77471503 * u.ABmag, 0.09003754 * albedo_unit), + (3.4 * u.mag, 'V', -26.77471503 * u.mag, 0.09003754 * albedo_unit) )) -def test_reflectance_ref(fluxd, wfb, f_sun, ref): - """Test conversion from flux to reflectance - - Use Ceres as the reference: H = 3.4 mag, radius = 460 km, average - bidirectional reflectance at zero phase angle 0.029 (~1/pi of geometric - albedo). +def test_dimensionless_albedo_alb(fluxd, wfb, f_sun, ref): + """Test conversion between flux and albedo + Use Ceres as the reference: H = 3.4 mag, radius = 460 km, disk-integrated + albedo at zero phase angle 0.09 (geometric albedo). """ xsec = 6.648e5 * u.km**2 - with vega_fluxd.set({'V': u.Quantity(3.589e-9, 'erg/(s cm2 AA)')}): with solar_fluxd.set({wfb: f_sun}): - r = fluxd.to('1/sr', reflectance(wfb, cross_section=xsec)) - assert r.unit == u.sr**-1 - assert np.isclose(r.value, ref) + r = fluxd.to(albedo_unit, dimensionless_albedo( + wfb, cross_section=xsec)) + fluxd1 = r.to(fluxd.unit, dimensionless_albedo( + wfb, cross_section=xsec)) + assert u.isclose(r, ref) + assert u.isclose(fluxd1, fluxd) @pytest.mark.parametrize('fluxd, wfb, f_sun, radius', ( - (3.4 * VEGAmag, JohnsonV, None, 460.01351274), - (3.4 * VEGAmag, 5500 * u.AA, None, 452.62198065), + (3.4 * VEGAmag, JohnsonV, None, 460.01351274 * u.km), + (3.4 * VEGAmag, 5500 * u.AA, None, 452.62198065 * u.km), (1.56644783e-09 * u.Unit('W/(m2 um)'), 'V', - 1839.93273227 * u.Unit('W/(m2 um)'), 460.01351274), + 1839.93273227 * u.Unit('W/(m2 um)'), 460.01351274 * u.km), (1.55728147e-24 * u.Unit('W/(m2 Hz)'), 'V', - 1.86599755e-12 * u.Unit('W/(m2 Hz)'), 455.45095634), - (3.4 * VEGAmag, 'V', -26.77471503 * VEGAmag, 460.01351274), - (3.4 * u.ABmag, 'V', -26.77471503 * u.ABmag, 460.01351274), - (3.4 * u.mag, 'V', -26.77471503 * u.mag, 460.01351274) + 1.86599755e-12 * u.Unit('W/(m2 Hz)'), 455.45095634 * u.km), + (3.4 * VEGAmag, 'V', -26.77471503 * VEGAmag, 460.01351274 * u.km), + (3.4 * u.ABmag, 'V', -26.77471503 * u.ABmag, 460.01351274 * u.km), + (3.4 * u.mag, 'V', -26.77471503 * u.mag, 460.01351274 * u.km) )) -def test_reflectance_xsec(fluxd, wfb, f_sun, radius): - """Test conversion from flux to reflectance - - Use Ceres as the reference: H = 3.4 mag, radius = 460 km, average - bidirectional reflectance at zero phase angle 0.029 (~1/pi of geometric - albedo 0.09). +def test_dimensionless_albedo_xsec(fluxd, wfb, f_sun, radius): + """Test conversion between flux and cross-section + Use Ceres as the reference: H = 3.4 mag, radius = 460 km, disk-integrated + albedo at zero phase angle 0.09 (geometric albedo). """ - ref = 0.02865984 / u.sr + alb = 0.09003754 * albedo_unit with vega_fluxd.set({'V': u.Quantity(3.589e-9, 'erg/(s cm2 AA)')}): with solar_fluxd.set({wfb: f_sun}): - xs = fluxd.to('km2', reflectance(wfb, reflectance=ref)) + xs = fluxd.to('km2', dimensionless_albedo(wfb, albedo=alb)) ra = np.sqrt(xs / np.pi) - assert ra.unit == u.km - assert np.isclose(ra.value, radius) + fluxd1 = xs.to(fluxd.unit, dimensionless_albedo(wfb, albedo=alb)) + assert u.isclose(ra, radius) + assert u.isclose(fluxd1, fluxd) + + +@pytest.mark.parametrize('fluxd, f_sun, radius', ( + (3.4 * VEGAmag, -26.77471503 * VEGAmag, 460.01351274 * u.km), + (1.56644783e-09 * u.Unit('W/(m2 um)'), + 1839.93273227 * u.Unit('W/(m2 um)'), 460.01510050 * u.km), + (1.55728147e-24 * u.Unit('W/(m2 Hz)'), + 1.86599755e-12 * u.Unit('W/(m2 Hz)'), 455.45096341 * u.km) + )) +def test_dimensionless_albedo_flux(fluxd, f_sun, radius): + """Test conversion between albedo and cross-section + + Use Ceres as the reference: albedo = 0.09, radius = 460 km, disk-integrated + albedo at zero phase angle 0.09 (geometric albedo). + """ + alb = 0.09003754 * albedo_unit + with solar_fluxd.set({'V': f_sun}): + xs = alb.to('km2', dimensionless_albedo('V', flux=fluxd)) + ra = np.sqrt(xs / np.pi) + alb1 = xs.to(albedo_unit, dimensionless_albedo('V', flux=fluxd)) + assert u.isclose(ra, radius) + assert u.isclose(alb1, alb) -def test_reflectance_exception(): - assert reflectance('B', reflectance=1/u.sr) == [] +def test_dimensionless_albedo_exception(): + assert dimensionless_albedo('B', albedo=1 * albedo_unit) == [] -def test_reflectance_spec(): +def test_dimensionless_albedo_spec(): """Test conversion from flux spectrum to reflectance spectrum Use Tempel 1 spectrum collected by Deep Impact HRI-IR at @@ -196,17 +221,16 @@ def test_reflectance_spec(): spec_nu = spec.to('W/(m2 Hz)', u.spectral_density(wave)) xsec = (ifov * delta)**2 / u.sr - ref1 = spec.to('1/sr', reflectance( + ref1 = spec.to(albedo_unit, dimensionless_albedo( wave, cross_section=xsec, interpolate=True)) - ref2 = spec_nu.to('1/sr', reflectance( + ref2 = spec_nu.to(albedo_unit, dimensionless_albedo( wave, cross_section=xsec, interpolate=True)) # use built-in solar spectrum - ref3 = spec.to('1/sr', reflectance(wave, cross_section=xsec)) + ref3 = spec.to(albedo_unit, dimensionless_albedo(wave, cross_section=xsec)) for ref in (ref1, ref2, ref3): - assert ref.unit == '1/sr' - assert np.allclose(ref.value, t1['ref']) + assert u.allclose(ref, t1['albedo'] * albedo_unit) @pytest.mark.parametrize('value, delta, test', (