PyTransit 2.7.1__tar.gz → 2.8.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pytransit-2.8.1/MANIFEST.in +4 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/PKG-INFO +2 -3
- {pytransit-2.7.1 → pytransit-2.8.1}/PyTransit.egg-info/PKG-INFO +2 -3
- {pytransit-2.7.1 → pytransit-2.8.1}/PyTransit.egg-info/SOURCES.txt +1 -4
- {pytransit-2.7.1 → pytransit-2.8.1}/PyTransit.egg-info/requires.txt +1 -2
- {pytransit-2.7.1 → pytransit-2.8.1}/pyproject.toml +6 -1
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/__init__.py +1 -1
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/eclipse_model.py +1 -27
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/gdmodel.py +8 -7
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/limb_darkening/linear.py +1 -1
- pytransit-2.8.1/pytransit/models/limb_darkening/nonlinear.py +6 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/limb_darkening/power_2.py +2 -2
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/ma_chromosphere.py +1 -25
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/ma_quadratic.py +1 -34
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/ma_uniform.py +1 -25
- pytransit-2.8.1/pytransit/models/new_eclipse_model.py +70 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/gdmodel.py +26 -28
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/ma_chromosphere_nb.py +0 -32
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/ma_quadratic_nb.py +13 -76
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/ma_uniform_nb.py +20 -67
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/qpower2_nb.py +13 -51
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/udmodel.py +20 -43
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/qpower2.py +1 -26
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/model_eclipse.py +7 -9
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/model_ecspec.py +13 -12
- pytransit-2.8.1/pytransit/models/roadrunner/model_full.py +100 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/model_simple.py +7 -8
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/model_trspec.py +21 -20
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/opmodel_full.py +17 -14
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/rrmodel.py +16 -8
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/uniform.py +45 -6
- {pytransit-2.7.1 → pytransit-2.8.1}/requirements.txt +1 -2
- {pytransit-2.7.1 → pytransit-2.8.1}/tests/test_contamination.py +3 -11
- {pytransit-2.7.1 → pytransit-2.8.1}/tests/test_limb_darkening.py +10 -65
- pytransit-2.8.1/tests/test_ma_quadratic.py +118 -0
- pytransit-2.8.1/tests/test_ma_quadratic_nb.py +62 -0
- pytransit-2.8.1/tests/test_qpower2_nb.py +51 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/tests/test_roadrunner_eclipse.py +21 -13
- pytransit-2.8.1/tests/test_uniform_model.py +97 -0
- pytransit-2.8.1/tests/test_uniform_model_nb.py +82 -0
- pytransit-2.8.1/tests/test_z.py +68 -0
- pytransit-2.7.1/MANIFEST.in +0 -6
- pytransit-2.7.1/pytransit/models/limb_darkening/nonlinear.py +0 -8
- pytransit-2.7.1/pytransit/models/numba/rrmodel.py +0 -633
- pytransit-2.7.1/pytransit/models/roadrunner/model.py +0 -21
- pytransit-2.7.1/pytransit/models/roadrunner/model_full.py +0 -215
- pytransit-2.7.1/tests/test_jax_uniformdisk.py +0 -195
- pytransit-2.7.1/tests/test_ma_quadratic.py +0 -175
- pytransit-2.7.1/tests/test_ma_quadratic_nb.py +0 -64
- pytransit-2.7.1/tests/test_qpower2_nb.py +0 -61
- pytransit-2.7.1/tests/test_transitmodel_helpers.py +0 -211
- pytransit-2.7.1/tests/test_uniform_model.py +0 -131
- pytransit-2.7.1/tests/test_uniform_model_nb.py +0 -87
- pytransit-2.7.1/tests/test_z.py +0 -77
- {pytransit-2.7.1 → pytransit-2.8.1}/LICENSE +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/PyTransit.egg-info/dependency_links.txt +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/PyTransit.egg-info/top_level.txt +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/README.md +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/contamination/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/contamination/contamination.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/contamination/data/spectra.h5 +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/contamination/data/transmission.nc +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/contamination/filter.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/contamination/instrument.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/contamination/plotting.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/limb_darkening.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/baselines/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/baselines/legendrebaseline.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/baselines/linearbaseline.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/cntlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/eclipselpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/loglikelihood/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/loglikelihood/celeriteloglikelihood.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/loglikelihood/clloglikelihood.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/loglikelihood/fmcloglikelihood.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/loglikelihood/logisticloglikelihood.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/loglikelihood/multiceleriteloglikelihood.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/loglikelihood/wnloglikelihood.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/logposteriorfunction.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/lpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/mclpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/mptlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/ocllpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/ocltdvlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/oclttvlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/phasecurvelpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/rvlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tdvlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tess/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tess/ctesslpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tess/tessttvlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tess/tgclpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tess/tgcmplpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tess/tmpclpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tesslpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/tessoclttvlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/transitanalysis.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/transitlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/lpf/ttvlpf.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/general.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/ldmodel.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/ldtkldm.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/limb_darkening/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/limb_darkening/general.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/limb_darkening/quadratic.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/limb_darkening/quadratic_tri.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/limb_darkening/uniform.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/ma_quadratic_cl.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/ma_uniform_cl.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/general_nb.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/ldmodels.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/ldtkldm.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/phasecurves.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/numba/spmodel.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/opencl/ma_quadratic.cl +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/opencl/ma_uniform.cl +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/opencl/orbits.cl +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/opencl/qpower2.cl +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/osmodel.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/qpower2_cl.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/common.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/ecintersection.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/esmodel.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/opmodel.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/rrmodel.cl +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/rrmodel_cl.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/roadrunner/tsmodel.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/models/transitmodel.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/orbits/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/orbits/orbits.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/orbits/orbits_py.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/orbits/taylor_z.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/param/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/param/parameter.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/param/prior.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/param/utilities.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/stars/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/stars/btsettl.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/stars/data/avg_bt_settl.fits +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/stars/data/avg_husser2013.fits +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/stars/husser2013.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/astrometry.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/constants.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/de.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/downsample.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/eclipses.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/io/__init__.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/io/lightcurvedata.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/keplerlc.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/mdwarfs.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/misc.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/mocklc.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/octasphere.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/phasecurves.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/physics.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/rv.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/pytransit/utils/tess.py +0 -0
- {pytransit-2.7.1 → pytransit-2.8.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyTransit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.1
|
|
4
4
|
Summary: Fast and painless exoplanet transit light curve modelling.
|
|
5
5
|
Author-email: Hannu Parviainen <hpparvi@gmail.com>
|
|
6
6
|
License: GPLv2
|
|
@@ -28,14 +28,13 @@ Requires-Dist: astropy
|
|
|
28
28
|
Requires-Dist: matplotlib
|
|
29
29
|
Requires-Dist: tqdm
|
|
30
30
|
Requires-Dist: semantic_version
|
|
31
|
-
Requires-Dist: setuptools
|
|
32
31
|
Requires-Dist: deprecated
|
|
33
32
|
Requires-Dist: seaborn
|
|
34
33
|
Requires-Dist: emcee
|
|
35
34
|
Requires-Dist: pyopencl
|
|
36
35
|
Requires-Dist: corner
|
|
37
36
|
Requires-Dist: celerite
|
|
38
|
-
Requires-Dist: meepmeep>=0.
|
|
37
|
+
Requires-Dist: meepmeep>=1.0.0
|
|
39
38
|
Dynamic: license-file
|
|
40
39
|
|
|
41
40
|
PyTransit
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyTransit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.1
|
|
4
4
|
Summary: Fast and painless exoplanet transit light curve modelling.
|
|
5
5
|
Author-email: Hannu Parviainen <hpparvi@gmail.com>
|
|
6
6
|
License: GPLv2
|
|
@@ -28,14 +28,13 @@ Requires-Dist: astropy
|
|
|
28
28
|
Requires-Dist: matplotlib
|
|
29
29
|
Requires-Dist: tqdm
|
|
30
30
|
Requires-Dist: semantic_version
|
|
31
|
-
Requires-Dist: setuptools
|
|
32
31
|
Requires-Dist: deprecated
|
|
33
32
|
Requires-Dist: seaborn
|
|
34
33
|
Requires-Dist: emcee
|
|
35
34
|
Requires-Dist: pyopencl
|
|
36
35
|
Requires-Dist: corner
|
|
37
36
|
Requires-Dist: celerite
|
|
38
|
-
Requires-Dist: meepmeep>=0.
|
|
37
|
+
Requires-Dist: meepmeep>=1.0.0
|
|
39
38
|
Dynamic: license-file
|
|
40
39
|
|
|
41
40
|
PyTransit
|
|
@@ -62,6 +62,7 @@ pytransit/models/ma_quadratic.py
|
|
|
62
62
|
pytransit/models/ma_quadratic_cl.py
|
|
63
63
|
pytransit/models/ma_uniform.py
|
|
64
64
|
pytransit/models/ma_uniform_cl.py
|
|
65
|
+
pytransit/models/new_eclipse_model.py
|
|
65
66
|
pytransit/models/osmodel.py
|
|
66
67
|
pytransit/models/qpower2.py
|
|
67
68
|
pytransit/models/qpower2_cl.py
|
|
@@ -85,7 +86,6 @@ pytransit/models/numba/ma_quadratic_nb.py
|
|
|
85
86
|
pytransit/models/numba/ma_uniform_nb.py
|
|
86
87
|
pytransit/models/numba/phasecurves.py
|
|
87
88
|
pytransit/models/numba/qpower2_nb.py
|
|
88
|
-
pytransit/models/numba/rrmodel.py
|
|
89
89
|
pytransit/models/numba/spmodel.py
|
|
90
90
|
pytransit/models/numba/udmodel.py
|
|
91
91
|
pytransit/models/opencl/ma_quadratic.cl
|
|
@@ -96,7 +96,6 @@ pytransit/models/roadrunner/__init__.py
|
|
|
96
96
|
pytransit/models/roadrunner/common.py
|
|
97
97
|
pytransit/models/roadrunner/ecintersection.py
|
|
98
98
|
pytransit/models/roadrunner/esmodel.py
|
|
99
|
-
pytransit/models/roadrunner/model.py
|
|
100
99
|
pytransit/models/roadrunner/model_eclipse.py
|
|
101
100
|
pytransit/models/roadrunner/model_ecspec.py
|
|
102
101
|
pytransit/models/roadrunner/model_full.py
|
|
@@ -139,13 +138,11 @@ pytransit/utils/tess.py
|
|
|
139
138
|
pytransit/utils/io/__init__.py
|
|
140
139
|
pytransit/utils/io/lightcurvedata.py
|
|
141
140
|
tests/test_contamination.py
|
|
142
|
-
tests/test_jax_uniformdisk.py
|
|
143
141
|
tests/test_limb_darkening.py
|
|
144
142
|
tests/test_ma_quadratic.py
|
|
145
143
|
tests/test_ma_quadratic_nb.py
|
|
146
144
|
tests/test_qpower2_nb.py
|
|
147
145
|
tests/test_roadrunner_eclipse.py
|
|
148
|
-
tests/test_transitmodel_helpers.py
|
|
149
146
|
tests/test_uniform_model.py
|
|
150
147
|
tests/test_uniform_model_nb.py
|
|
151
148
|
tests/test_z.py
|
|
@@ -33,5 +33,10 @@ version = {attr = "pytransit.__version__"}
|
|
|
33
33
|
include-package-data = true
|
|
34
34
|
|
|
35
35
|
[tool.setuptools.packages.find]
|
|
36
|
-
include = ["pytransit"]
|
|
36
|
+
include = ["pytransit*"]
|
|
37
37
|
namespaces = true
|
|
38
|
+
|
|
39
|
+
[tool.pytest.ini_options]
|
|
40
|
+
testpaths = ["tests"]
|
|
41
|
+
python_files = ["test_*.py"]
|
|
42
|
+
addopts = "-ra"
|
|
@@ -18,7 +18,7 @@ from typing import Union, Optional
|
|
|
18
18
|
|
|
19
19
|
from numba import njit
|
|
20
20
|
from numpy import ndarray, squeeze, zeros, asarray, ones
|
|
21
|
-
from .numba.ma_uniform_nb import uniform_model_v, uniform_model_s
|
|
21
|
+
from .numba.ma_uniform_nb import uniform_model_v, uniform_model_s
|
|
22
22
|
from .transitmodel import TransitModel
|
|
23
23
|
|
|
24
24
|
__all__ = ['EclipseModel']
|
|
@@ -140,29 +140,3 @@ class EclipseModel(TransitModel):
|
|
|
140
140
|
if fr is not None:
|
|
141
141
|
flux = 1.0 + (flux - 1.0) * fr
|
|
142
142
|
return squeeze(flux)
|
|
143
|
-
|
|
144
|
-
def evaluate_pv(self, pvp: ndarray, fr = None) -> ndarray:
|
|
145
|
-
"""Evaluate the transit model for a 2D parameter array.
|
|
146
|
-
|
|
147
|
-
Parameters
|
|
148
|
-
----------
|
|
149
|
-
pvp
|
|
150
|
-
Parameter array with a shape `(npv, npar)` where `npv` is the number of parameter vectors, and each row
|
|
151
|
-
contains a set of parameters `[k, t0, p, a, i, e, w]`. The radius ratios can also be given per passband,
|
|
152
|
-
in which case the row should be structured as `[k_0, k_1, k_2, ..., k_npb, t0, p, a, i, e, w]`.
|
|
153
|
-
|
|
154
|
-
Notes
|
|
155
|
-
-----
|
|
156
|
-
This version of the `evaluate` method is optimized for calculating several models in parallel, such as when
|
|
157
|
-
using *emcee* for MCMC sampling.
|
|
158
|
-
|
|
159
|
-
Returns
|
|
160
|
-
-------
|
|
161
|
-
ndarray
|
|
162
|
-
Modelled flux either as a 1D or 2D ndarray.
|
|
163
|
-
"""
|
|
164
|
-
assert self.time is not None, "Need to set the data before calling the transit model."
|
|
165
|
-
flux = uniform_model_pv(self.time, pvp, self.lcids, self.pbids, self.nsamples, self.exptimes, zsign=-1.0)
|
|
166
|
-
if fr is not None:
|
|
167
|
-
flux = 1.0 + (flux - 1.0) * fr
|
|
168
|
-
return squeeze(flux)
|
|
@@ -30,8 +30,9 @@ from .numba.gdmodel import create_star_xy, create_planet_xy, map_osm, xy_taylor_
|
|
|
30
30
|
luminosity_v2, planck, create_star_luminosity
|
|
31
31
|
from ..contamination.filter import Filter, DeltaFilter
|
|
32
32
|
from ..stars import read_bt_settl_table, read_husser2013_table
|
|
33
|
+
from meepmeep.backends.numba.point2d import solve2d, find_contact_point
|
|
34
|
+
|
|
33
35
|
from ..orbits import as_from_rhop, i_from_baew
|
|
34
|
-
from ..orbits.taylor_z import vajs_from_paiew, find_contact_point
|
|
35
36
|
from ..utils.octasphere import octasphere
|
|
36
37
|
|
|
37
38
|
|
|
@@ -214,15 +215,15 @@ class GravityDarkenedModel(TransitModel):
|
|
|
214
215
|
|
|
215
216
|
# Plot the orbit
|
|
216
217
|
# --------------
|
|
217
|
-
|
|
218
|
-
c1 = find_contact_point(k, 1,
|
|
219
|
-
c4 = find_contact_point(k, 4,
|
|
218
|
+
cf = solve2d(0.0, p, a, inc, e, w)
|
|
219
|
+
c1 = find_contact_point(k, 1, cf)
|
|
220
|
+
c4 = find_contact_point(k, 4, cf)
|
|
220
221
|
time = linspace(2 * c1, 2 * c4, 100)
|
|
221
222
|
|
|
222
|
-
ox, oy = xy_taylor_vt(time, alpha,
|
|
223
|
+
ox, oy = xy_taylor_vt(time, alpha, cf)
|
|
223
224
|
ax.plot(ox, oy, 'k')
|
|
224
225
|
|
|
225
|
-
pxy = xy_taylor_vt(array([0.0]), alpha,
|
|
226
|
+
pxy = xy_taylor_vt(array([0.0]), alpha, cf)
|
|
226
227
|
ax.add_artist(Circle(pxy, k, zorder=10, fc='k'))
|
|
227
228
|
|
|
228
229
|
# Plot the info
|
|
@@ -314,7 +315,7 @@ class GravityDarkenedModel(TransitModel):
|
|
|
314
315
|
st, sx, sy = create_star_xy(res)
|
|
315
316
|
fstar = create_star_luminosity(res, sx, sy, mstar, self.rstar, ostar, tpole, gpole, f,
|
|
316
317
|
sphi, cphi, beta, ldc, self._flux_table, self._teff0, self._dteff, self.accurate_mu)
|
|
317
|
-
px, py = xy_taylor_vt(self.time - t0, l,
|
|
318
|
+
px, py = xy_taylor_vt(self.time - t0, l, solve2d(0.0, p, a, i, e, w))
|
|
318
319
|
|
|
319
320
|
if plot:
|
|
320
321
|
fig, ax = subplots()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from math import pi
|
|
1
|
+
from math import pi
|
|
2
2
|
|
|
3
3
|
from numba import njit
|
|
4
4
|
from numpy import zeros, log
|
|
@@ -11,7 +11,7 @@ def ld_power_2(mu, pv):
|
|
|
11
11
|
|
|
12
12
|
@njit
|
|
13
13
|
def ldi_power_2(mu, pv):
|
|
14
|
-
return 2 * pi *
|
|
14
|
+
return 2 * pi * (0.5 - 0.5 * pv[0] + pv[0] / (pv[1] + 2.0))
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
@njit(fastmath=True)
|
|
@@ -17,7 +17,7 @@ from typing import Union
|
|
|
17
17
|
|
|
18
18
|
from numpy import ndarray, array, squeeze, asarray, zeros, isscalar
|
|
19
19
|
|
|
20
|
-
from .numba.ma_chromosphere_nb import
|
|
20
|
+
from .numba.ma_chromosphere_nb import chromosphere_model_v, chromosphere_model_s
|
|
21
21
|
from .transitmodel import TransitModel
|
|
22
22
|
|
|
23
23
|
__all__ = ['ChromosphereModel']
|
|
@@ -120,27 +120,3 @@ class ChromosphereModel(TransitModel):
|
|
|
120
120
|
self._es, self._ms, self._tae)
|
|
121
121
|
return squeeze(flux)
|
|
122
122
|
|
|
123
|
-
def evaluate_pv(self, pvp: ndarray) -> ndarray:
|
|
124
|
-
"""Evaluate the transit model for a 2D parameter array.
|
|
125
|
-
|
|
126
|
-
Parameters
|
|
127
|
-
----------
|
|
128
|
-
pvp
|
|
129
|
-
Parameter array with a shape `(npv, npar)` where `npv` is the number of parameter vectors, and each row
|
|
130
|
-
contains a set of parameters `[k, t0, p, a, i, e, w]`. The radius ratios can also be given per passband,
|
|
131
|
-
in which case the row should be structured as `[k_0, k_1, k_2, ..., k_npb, t0, p, a, i, e, w]`.
|
|
132
|
-
|
|
133
|
-
Notes
|
|
134
|
-
-----
|
|
135
|
-
This version of the `evaluate` method is optimized for calculating several models in parallel, such as when
|
|
136
|
-
using *emcee* for MCMC sampling.
|
|
137
|
-
|
|
138
|
-
Returns
|
|
139
|
-
-------
|
|
140
|
-
ndarray
|
|
141
|
-
Modelled flux either as a 1D or 2D ndarray.
|
|
142
|
-
"""
|
|
143
|
-
assert self.time is not None, "Need to set the data before calling the transit model."
|
|
144
|
-
flux = chromosphere_model_pv(self.time, pvp, self.lcids, self.pbids, self.nsamples, self.exptimes, self._es,
|
|
145
|
-
self._ms, self._tae)
|
|
146
|
-
return squeeze(flux)
|
|
@@ -30,7 +30,7 @@ from typing import Union, Optional, List
|
|
|
30
30
|
|
|
31
31
|
from numpy import ndarray, array, squeeze, atleast_2d, atleast_1d, zeros, asarray, inf, isscalar
|
|
32
32
|
|
|
33
|
-
from .numba.ma_quadratic_nb import
|
|
33
|
+
from .numba.ma_quadratic_nb import calculate_interpolation_tables, quadratic_model_v, quadratic_model_s
|
|
34
34
|
from .transitmodel import TransitModel
|
|
35
35
|
|
|
36
36
|
__all__ = ['QuadraticModel']
|
|
@@ -191,39 +191,6 @@ class QuadraticModel(TransitModel):
|
|
|
191
191
|
self.ed, self.ld, self.le, self.kt, self.zt, self.interpolate)
|
|
192
192
|
return squeeze(flux)
|
|
193
193
|
|
|
194
|
-
def evaluate_pv(self, pvp: ndarray, ldc: ndarray, copy: bool = True) -> ndarray:
|
|
195
|
-
"""Evaluate the transit model for a 2D parameter array.
|
|
196
|
-
|
|
197
|
-
Parameters
|
|
198
|
-
----------
|
|
199
|
-
pvp: ndarray
|
|
200
|
-
Parameter array with a shape `(npv, npar)` where `npv` is the number of parameter vectors, and each row
|
|
201
|
-
contains a set of parameters `[k, t0, p, a, i, e, w]`. The radius ratios can also be given per passband,
|
|
202
|
-
in which case the row should be structured as `[k_0, k_1, k_2, ..., k_npb, t0, p, a, b, e, w]`.
|
|
203
|
-
ldc: ndarray
|
|
204
|
-
Limb darkening coefficient array with shape `(npv, 2*npb)`, where `npv` is the number of parameter vectors
|
|
205
|
-
and `npb` is the number of passbands.
|
|
206
|
-
|
|
207
|
-
Notes
|
|
208
|
-
-----
|
|
209
|
-
This version of the `evaluate` method is optimized for calculating several models in parallel, such as when
|
|
210
|
-
using *emcee* for MCMC sampling.
|
|
211
|
-
|
|
212
|
-
Returns
|
|
213
|
-
-------
|
|
214
|
-
ndarray
|
|
215
|
-
Modelled flux either as a 1D or 2D ndarray.
|
|
216
|
-
"""
|
|
217
|
-
|
|
218
|
-
ldc = asarray(ldc)
|
|
219
|
-
pvp = asarray(pvp)
|
|
220
|
-
|
|
221
|
-
if self.time is None:
|
|
222
|
-
raise ValueError("Need to set the data before calling the transit model.")
|
|
223
|
-
|
|
224
|
-
flux = quadratic_model_pv(self.time, pvp, ldc, self.lcids, self.pbids, self.nsamples, self.exptimes,
|
|
225
|
-
self.npb, self.ed, self.ld, self.le, self.kt, self.zt, self.interpolate)
|
|
226
|
-
return squeeze(flux)
|
|
227
194
|
|
|
228
195
|
def to_opencl(self):
|
|
229
196
|
"""Creates an OpenCL clone (`QuadraticModelCL`) of the transit model.
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
from typing import Union
|
|
18
18
|
from numpy import ndarray, squeeze, zeros, asarray, isscalar
|
|
19
|
-
from .numba.ma_uniform_nb import uniform_model_v, uniform_model_s
|
|
19
|
+
from .numba.ma_uniform_nb import uniform_model_v, uniform_model_s
|
|
20
20
|
from .transitmodel import TransitModel
|
|
21
21
|
|
|
22
22
|
__all__ = ['UniformModel']
|
|
@@ -122,27 +122,3 @@ class UniformModel(TransitModel):
|
|
|
122
122
|
k = asarray(k)
|
|
123
123
|
flux = uniform_model_s(self.time, k, t0, p, a, i, e, w, self.lcids, self.pbids, self.nsamples, self.exptimes, zsign=self._zsign)
|
|
124
124
|
return squeeze(flux)
|
|
125
|
-
|
|
126
|
-
def evaluate_pv(self, pvp: ndarray) -> ndarray:
|
|
127
|
-
"""Evaluate the transit model for a 2D parameter array.
|
|
128
|
-
|
|
129
|
-
Parameters
|
|
130
|
-
----------
|
|
131
|
-
pvp
|
|
132
|
-
Parameter array with a shape `(npv, npar)` where `npv` is the number of parameter vectors, and each row
|
|
133
|
-
contains a set of parameters `[k, t0, p, a, i, e, w]`. The radius ratios can also be given per passband,
|
|
134
|
-
in which case the row should be structured as `[k_0, k_1, k_2, ..., k_npb, t0, p, a, i, e, w]`.
|
|
135
|
-
|
|
136
|
-
Notes
|
|
137
|
-
-----
|
|
138
|
-
This version of the `evaluate` method is optimized for calculating several models in parallel, such as when
|
|
139
|
-
using *emcee* for MCMC sampling.
|
|
140
|
-
|
|
141
|
-
Returns
|
|
142
|
-
-------
|
|
143
|
-
ndarray
|
|
144
|
-
Modelled flux either as a 1D or 2D ndarray.
|
|
145
|
-
"""
|
|
146
|
-
assert self.time is not None, "Need to set the data before calling the transit model."
|
|
147
|
-
flux = uniform_model_pv(self.time, pvp, self.lcids, self.pbids, self.nsamples, self.exptimes, zsign=self._zsign)
|
|
148
|
-
return squeeze(flux)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# PyTransit: fast and easy exoplanet transit modelling in Python.
|
|
2
|
+
# Copyright (C) 2010-2019 Hannu Parviainen
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
from typing import Union
|
|
18
|
+
|
|
19
|
+
from numpy import squeeze, zeros, atleast_1d, atleast_2d
|
|
20
|
+
from numpy.typing import NDArray
|
|
21
|
+
from .roadrunner.model_eclipse import eclipse_model
|
|
22
|
+
from .transitmodel import TransitModel
|
|
23
|
+
|
|
24
|
+
__all__ = ['EclipseModel']
|
|
25
|
+
|
|
26
|
+
npfloat = Union[float, NDArray]
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class EclipseModel(TransitModel):
|
|
30
|
+
|
|
31
|
+
def __init__(self) -> None:
|
|
32
|
+
super().__init__()
|
|
33
|
+
|
|
34
|
+
def evaluate(self, k: npfloat, t0: npfloat, p: npfloat, a: npfloat, i: npfloat, e: npfloat = None, w: npfloat = None,
|
|
35
|
+
rstar: float = 1.0, copy: bool = True) -> NDArray:
|
|
36
|
+
"""Evaluates a multiplicative secondary eclipse model for a set of scalar or vector parameters.
|
|
37
|
+
|
|
38
|
+
Parameters
|
|
39
|
+
----------
|
|
40
|
+
k
|
|
41
|
+
Radius ratio(s) either as a single float, 1D vector, or 2D array.
|
|
42
|
+
t0
|
|
43
|
+
Transit center(s) as a float or a 1D vector.
|
|
44
|
+
p
|
|
45
|
+
Orbital period(s) as a float or a 1D vector.
|
|
46
|
+
a
|
|
47
|
+
Orbital semi-major axis (axes) divided by the stellar radius as a float or a 1D vector.
|
|
48
|
+
i
|
|
49
|
+
Orbital inclination(s) as a float or a 1D vector.
|
|
50
|
+
e
|
|
51
|
+
Orbital eccentricity as a float or a 1D vector.
|
|
52
|
+
w
|
|
53
|
+
Argument of periastron as a float or a 1D vector.
|
|
54
|
+
rstar
|
|
55
|
+
Stellar radius in R_sun as a float or a 1D vector.
|
|
56
|
+
|
|
57
|
+
Returns
|
|
58
|
+
-------
|
|
59
|
+
Multiplicative eclipse model
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
k = atleast_1d(k)
|
|
63
|
+
t0 = atleast_2d(t0).reshape([k.size, -1])
|
|
64
|
+
p = atleast_1d(p)
|
|
65
|
+
a = atleast_1d(a)
|
|
66
|
+
i = atleast_1d(i)
|
|
67
|
+
e = zeros(1) if e is None else atleast_1d(e)
|
|
68
|
+
w = zeros(1) if w is None else atleast_1d(w)
|
|
69
|
+
|
|
70
|
+
return squeeze(eclipse_model(self.time, k, t0, p, a, i, e, w, rstar, self.nlc, self.lcids, self.pbids, self.nsamples, self.exptimes))
|
|
@@ -19,8 +19,9 @@ from scipy.constants import G, k, h, c
|
|
|
19
19
|
from numpy import exp, pi, sqrt, zeros, sin, cos, nan, inf, linspace, meshgrid, floor, isfinite, fmax, isnan, nanmean, \
|
|
20
20
|
arange, zeros_like, atleast_2d, array, cross, sign
|
|
21
21
|
|
|
22
|
+
from meepmeep.backends.numba.point2d import solve2d, find_contact_point, bounding_box
|
|
23
|
+
|
|
22
24
|
from ..roadrunner.common import circle_circle_intersection_area
|
|
23
|
-
from ...orbits.taylor_z import vajs_from_paiew, find_contact_point, t14
|
|
24
25
|
|
|
25
26
|
d2sec = 24.*60.*60.
|
|
26
27
|
|
|
@@ -397,18 +398,18 @@ def mean_luminosity_under_planet(x, y, mstar, rstar, ostar, tpole, gpole, f, sph
|
|
|
397
398
|
|
|
398
399
|
|
|
399
400
|
@njit
|
|
400
|
-
def calculate_luminosity_interpolation_table(res, k, xp, yp, sa, ca,
|
|
401
|
+
def calculate_luminosity_interpolation_table(res, k, xp, yp, sa, ca, c,
|
|
401
402
|
mstar, rstar, ostar, tpole, gpole, f, sphi, cphi, beta, ldc,
|
|
402
403
|
ftable, t0, dt, accurate_mu):
|
|
403
|
-
t1 = find_contact_point(k, 1,
|
|
404
|
-
t4 = find_contact_point(k, 4,
|
|
404
|
+
t1 = find_contact_point(k, 1, c)
|
|
405
|
+
t4 = find_contact_point(k, 4, c)
|
|
405
406
|
times = linspace(t1, t4, res)
|
|
406
407
|
|
|
407
408
|
npb = ftable.shape[0]
|
|
408
409
|
lt = zeros((npb, res))
|
|
409
410
|
for ipb in range(npb):
|
|
410
411
|
for i in range(lt.shape[1]):
|
|
411
|
-
x, y = xy_taylor_st(times[i], sa, ca,
|
|
412
|
+
x, y = xy_taylor_st(times[i], sa, ca, c)
|
|
412
413
|
xs = x + k * xp
|
|
413
414
|
ys = y + k * yp
|
|
414
415
|
lt[ipb, i] = mean_luminosity_under_planet(xs, ys, mstar, rstar, ostar, tpole, gpole, f, sphi, cphi, beta, ldc,
|
|
@@ -436,12 +437,9 @@ def calculate_luminosity_interpolation_table(res, k, xp, yp, sa, ca, y0, vx, vy,
|
|
|
436
437
|
|
|
437
438
|
|
|
438
439
|
@njit(fastmath=True)
|
|
439
|
-
def xy_taylor_st(t, sa, ca,
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
t4 = t3*t
|
|
443
|
-
px = vx*t + 0.5*ax*t2 + jx*t3/6.0 + sx*t4/24.
|
|
444
|
-
py = y0 + vy*t + 0.5*ay*t2 + jy*t3/6.0 + sy*t4/24.
|
|
440
|
+
def xy_taylor_st(t, sa, ca, c):
|
|
441
|
+
px = c[0, 0] + t*(c[0, 1] + t*(c[0, 2] + t*(c[0, 3] + t*c[0, 4])))
|
|
442
|
+
py = c[1, 0] + t*(c[1, 1] + t*(c[1, 2] + t*(c[1, 3] + t*c[1, 4])))
|
|
445
443
|
|
|
446
444
|
x = ca*px - sa*py
|
|
447
445
|
y = ca*py + sa*px
|
|
@@ -450,18 +448,15 @@ def xy_taylor_st(t, sa, ca, y0, vx, vy, ax, ay, jx, jy, sx, sy):
|
|
|
450
448
|
|
|
451
449
|
|
|
452
450
|
@njit(fastmath=True)
|
|
453
|
-
def xy_taylor_vt(ts, a,
|
|
451
|
+
def xy_taylor_vt(ts, a, c):
|
|
454
452
|
npt = ts.size
|
|
455
453
|
x, y = zeros(npt), zeros(npt)
|
|
456
454
|
ca, sa = cos(a), sin(a)
|
|
457
455
|
|
|
458
456
|
for i in range(npt):
|
|
459
457
|
t = ts[i]
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
t4 = t3*t
|
|
463
|
-
px = vx*t + 0.5*ax*t2 + jx*t3/6.0 + sx*t4/24.
|
|
464
|
-
py = y0 + vy*t + 0.5*ay*t2 + jy*t3/6.0 + sy*t4/24.
|
|
458
|
+
px = c[0, 0] + t*(c[0, 1] + t*(c[0, 2] + t*(c[0, 3] + t*c[0, 4])))
|
|
459
|
+
py = c[1, 0] + t*(c[1, 1] + t*(c[1, 2] + t*(c[1, 3] + t*c[1, 4])))
|
|
465
460
|
|
|
466
461
|
x[i] = ca*px - sa*py
|
|
467
462
|
y[i] = ca*py + sa*px
|
|
@@ -470,7 +465,7 @@ def xy_taylor_vt(ts, a, y0, vx, vy, ax, ay, jx, jy, sx, sy):
|
|
|
470
465
|
|
|
471
466
|
|
|
472
467
|
@njit
|
|
473
|
-
def find_contact_point_2d(k: float, point: int, az, feff,
|
|
468
|
+
def find_contact_point_2d(k: float, point: int, az, feff, c):
|
|
474
469
|
if point == 1 or point == 2 or point == 12:
|
|
475
470
|
s = -1.0
|
|
476
471
|
else:
|
|
@@ -483,14 +478,16 @@ def find_contact_point_2d(k: float, point: int, az, feff, y0, vx, vy, ax, ay, jx
|
|
|
483
478
|
else:
|
|
484
479
|
zt = 1.0
|
|
485
480
|
|
|
481
|
+
vx = c[0, 1]
|
|
482
|
+
|
|
486
483
|
t0 = 0.0
|
|
487
484
|
t2 = s * 2.0 / vx
|
|
488
485
|
t1 = 0.5 * t2
|
|
489
486
|
|
|
490
487
|
sa, ca = sin(az), cos(az)
|
|
491
488
|
|
|
492
|
-
x0, y0 = xy_taylor_st(t0, sa, ca,
|
|
493
|
-
x1, y1 = xy_taylor_st(t1, sa, ca,
|
|
489
|
+
x0, y0 = xy_taylor_st(t0, sa, ca, c)
|
|
490
|
+
x1, y1 = xy_taylor_st(t1, sa, ca, c)
|
|
494
491
|
z0 = sqrt(x0 ** 2 + (y0 / (1 - feff)) ** 2) - zt
|
|
495
492
|
z1 = sqrt(x1 ** 2 + (y1 / (1 - feff)) ** 2) - zt
|
|
496
493
|
|
|
@@ -499,12 +496,12 @@ def find_contact_point_2d(k: float, point: int, az, feff, y0, vx, vy, ax, ay, jx
|
|
|
499
496
|
if z0 * z1 < 0.0:
|
|
500
497
|
t1, t2 = 0.5 * (t0 + t1), t1
|
|
501
498
|
z2 = z1
|
|
502
|
-
x1, y1 = xy_taylor_st(t1, sa, ca,
|
|
499
|
+
x1, y1 = xy_taylor_st(t1, sa, ca, c)
|
|
503
500
|
z1 = sqrt(x1 ** 2 + (y1 / (1 - feff)) ** 2) - zt
|
|
504
501
|
else:
|
|
505
502
|
t0, t1 = t1, 0.5 * (t1 + t2)
|
|
506
503
|
z0 = z1
|
|
507
|
-
x1, y1 = xy_taylor_st(t1, sa, ca,
|
|
504
|
+
x1, y1 = xy_taylor_st(t1, sa, ca, c)
|
|
508
505
|
z1 = sqrt(x1 ** 2 + (y1 / (1 - feff)) ** 2) - zt
|
|
509
506
|
i += 1
|
|
510
507
|
return t1
|
|
@@ -516,16 +513,17 @@ def oblate_model_s(t, k, t0, p, a, aa, i, e, w, ldc,
|
|
|
516
513
|
f, feff, sphi, cphi, beta, ftable, teff0, dteff,
|
|
517
514
|
tres, ts, xs, ys, xp, yp,
|
|
518
515
|
lcids, pbids, nsamples, exptimes, npb, accurate_mu):
|
|
519
|
-
|
|
516
|
+
c = solve2d(0.0, p, a, i, e, w)
|
|
520
517
|
ldc = atleast_2d(ldc)
|
|
521
518
|
|
|
522
519
|
sa, ca = sin(aa), cos(aa)
|
|
523
|
-
|
|
520
|
+
bt1, bt4 = bounding_box(k[0], c)
|
|
521
|
+
bt1 -= 0.025
|
|
522
|
+
bt4 += 0.025
|
|
524
523
|
|
|
525
524
|
npt = t.size
|
|
526
525
|
flux = zeros(npt)
|
|
527
|
-
tp, lp = calculate_luminosity_interpolation_table(tres, k[0], xp, yp, sa, ca,
|
|
528
|
-
y0, vx, vy, ax, ay, jx, jy, sx, sy,
|
|
526
|
+
tp, lp = calculate_luminosity_interpolation_table(tres, k[0], xp, yp, sa, ca, c,
|
|
529
527
|
mstar, rstar, ostar, tpole, gpole, f,
|
|
530
528
|
sphi, cphi, beta, ldc, ftable, teff0, dteff, accurate_mu)
|
|
531
529
|
dtp = tp[1] - tp[0]
|
|
@@ -541,7 +539,7 @@ def oblate_model_s(t, k, t0, p, a, aa, i, e, w, ldc,
|
|
|
541
539
|
for j in range(npt):
|
|
542
540
|
epoch = floor((t[j] - t0 + 0.5*p)/p)
|
|
543
541
|
tc = t[j] - (t0 + epoch*p)
|
|
544
|
-
if
|
|
542
|
+
if not (bt1 <= tc <= bt4):
|
|
545
543
|
flux[j] = 1.0
|
|
546
544
|
else:
|
|
547
545
|
ilc = lcids[j]
|
|
@@ -570,7 +568,7 @@ def oblate_model_s(t, k, t0, p, a, aa, i, e, w, ldc,
|
|
|
570
568
|
at = (to - tp[it]) / dtp
|
|
571
569
|
ml = (1.0 - at) * lp[ipb, it] + at * lp[ipb, it + 1]
|
|
572
570
|
|
|
573
|
-
x, y = xy_taylor_st(to, sa, ca,
|
|
571
|
+
x, y = xy_taylor_st(to, sa, ca, c)
|
|
574
572
|
|
|
575
573
|
b = sqrt(x**2 + (y / (1. - feff))**2)
|
|
576
574
|
ia = circle_circle_intersection_area(1., _k, b)
|
|
@@ -213,35 +213,3 @@ def chromosphere_model_s(t, k, t0, p, a, i, e, w, lcids, pbids, nsamples, exptim
|
|
|
213
213
|
flux[j] += chromosphere_z_s(z, _k)
|
|
214
214
|
flux[j] /= nsamples[ilc]
|
|
215
215
|
return flux
|
|
216
|
-
|
|
217
|
-
@njit(parallel=True, fastmath=True)
|
|
218
|
-
def chromosphere_model_pv(t, pvp, lcids, pbids, nsamples, exptimes, es, ms, tae):
|
|
219
|
-
pvp = atleast_2d(pvp)
|
|
220
|
-
npv = pvp.shape[0]
|
|
221
|
-
npt = t.size
|
|
222
|
-
nk = pvp.shape[1] - 6
|
|
223
|
-
|
|
224
|
-
flux = zeros((npv, npt))
|
|
225
|
-
for j in prange(npt):
|
|
226
|
-
for ipv in range(npv):
|
|
227
|
-
t0, p, a, i, e, w = pvp[ipv,nk:]
|
|
228
|
-
ilc = lcids[j]
|
|
229
|
-
ipb = pbids[ilc]
|
|
230
|
-
|
|
231
|
-
if nk == 1:
|
|
232
|
-
k = pvp[ipv, 0]
|
|
233
|
-
else:
|
|
234
|
-
if ipb < nk:
|
|
235
|
-
k = pvp[ipv, ipb]
|
|
236
|
-
else:
|
|
237
|
-
k = nan
|
|
238
|
-
|
|
239
|
-
for isample in range(1,nsamples[ilc]+1):
|
|
240
|
-
time_offset = exptimes[ilc] * ((isample - 0.5) / nsamples[ilc] - 0.5)
|
|
241
|
-
z = z_ip_s(t[j]+time_offset, t0, p, a, i, e, w, es, ms, tae)
|
|
242
|
-
if z > 1.0+k:
|
|
243
|
-
flux[ipv, j] += 1.
|
|
244
|
-
else:
|
|
245
|
-
flux[ipv, j] += chromosphere_z_s(z, k)
|
|
246
|
-
flux[ipv, j] /= nsamples[ilc]
|
|
247
|
-
return flux
|