PyTransit 2.6.19__tar.gz → 2.7.0__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.
Files changed (151) hide show
  1. {pytransit-2.6.19 → pytransit-2.7.0}/PKG-INFO +1 -1
  2. {pytransit-2.6.19 → pytransit-2.7.0}/PyTransit.egg-info/PKG-INFO +1 -1
  3. {pytransit-2.6.19 → pytransit-2.7.0}/PyTransit.egg-info/SOURCES.txt +2 -0
  4. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/__init__.py +2 -2
  5. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/__init__.py +3 -1
  6. pytransit-2.7.0/pytransit/models/roadrunner/esmodel.py +88 -0
  7. pytransit-2.7.0/pytransit/models/roadrunner/model_ecspec.py +60 -0
  8. {pytransit-2.6.19 → pytransit-2.7.0}/LICENSE +0 -0
  9. {pytransit-2.6.19 → pytransit-2.7.0}/MANIFEST.in +0 -0
  10. {pytransit-2.6.19 → pytransit-2.7.0}/PyTransit.egg-info/dependency_links.txt +0 -0
  11. {pytransit-2.6.19 → pytransit-2.7.0}/PyTransit.egg-info/requires.txt +0 -0
  12. {pytransit-2.6.19 → pytransit-2.7.0}/PyTransit.egg-info/top_level.txt +0 -0
  13. {pytransit-2.6.19 → pytransit-2.7.0}/README.md +0 -0
  14. {pytransit-2.6.19 → pytransit-2.7.0}/pyproject.toml +0 -0
  15. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/contamination/__init__.py +0 -0
  16. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/contamination/contamination.py +0 -0
  17. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/contamination/data/spectra.h5 +0 -0
  18. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/contamination/data/transmission.nc +0 -0
  19. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/contamination/filter.py +0 -0
  20. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/contamination/instrument.py +0 -0
  21. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/contamination/plotting.py +0 -0
  22. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/limb_darkening.py +0 -0
  23. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/__init__.py +0 -0
  24. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/baselines/__init__.py +0 -0
  25. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/baselines/legendrebaseline.py +0 -0
  26. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/baselines/linearbaseline.py +0 -0
  27. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/cntlpf.py +0 -0
  28. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/eclipselpf.py +0 -0
  29. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/loglikelihood/__init__.py +0 -0
  30. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/loglikelihood/celeriteloglikelihood.py +0 -0
  31. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/loglikelihood/clloglikelihood.py +0 -0
  32. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/loglikelihood/fmcloglikelihood.py +0 -0
  33. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/loglikelihood/logisticloglikelihood.py +0 -0
  34. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/loglikelihood/multiceleriteloglikelihood.py +0 -0
  35. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/loglikelihood/wnloglikelihood.py +0 -0
  36. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/logposteriorfunction.py +0 -0
  37. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/lpf.py +0 -0
  38. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/mclpf.py +0 -0
  39. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/mptlpf.py +0 -0
  40. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/ocllpf.py +0 -0
  41. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/ocltdvlpf.py +0 -0
  42. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/oclttvlpf.py +0 -0
  43. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/phasecurvelpf.py +0 -0
  44. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/rvlpf.py +0 -0
  45. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tdvlpf.py +0 -0
  46. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tess/__init__.py +0 -0
  47. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tess/ctesslpf.py +0 -0
  48. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tess/tessttvlpf.py +0 -0
  49. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tess/tgclpf.py +0 -0
  50. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tess/tgcmplpf.py +0 -0
  51. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tess/tmpclpf.py +0 -0
  52. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tesslpf.py +0 -0
  53. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/tessoclttvlpf.py +0 -0
  54. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/transitanalysis.py +0 -0
  55. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/transitlpf.py +0 -0
  56. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/lpf/ttvlpf.py +0 -0
  57. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/eclipse_model.py +0 -0
  58. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/gdmodel.py +0 -0
  59. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/general.py +0 -0
  60. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/ldmodel.py +0 -0
  61. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/ldtkldm.py +0 -0
  62. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/__init__.py +0 -0
  63. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/general.py +0 -0
  64. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/linear.py +0 -0
  65. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/nonlinear.py +0 -0
  66. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/power_2.py +0 -0
  67. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/quadratic.py +0 -0
  68. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/quadratic_tri.py +0 -0
  69. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/limb_darkening/uniform.py +0 -0
  70. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/ma_chromosphere.py +0 -0
  71. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/ma_quadratic.py +0 -0
  72. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/ma_quadratic_cl.py +0 -0
  73. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/ma_uniform.py +0 -0
  74. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/ma_uniform_cl.py +0 -0
  75. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/__init__.py +0 -0
  76. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/gdmodel.py +0 -0
  77. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/general_nb.py +0 -0
  78. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/ldmodels.py +0 -0
  79. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/ldtkldm.py +0 -0
  80. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/ma_chromosphere_nb.py +0 -0
  81. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/ma_quadratic_nb.py +0 -0
  82. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/ma_uniform_nb.py +0 -0
  83. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/phasecurves.py +0 -0
  84. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/qpower2_nb.py +0 -0
  85. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/rrmodel.py +0 -0
  86. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/spmodel.py +0 -0
  87. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/numba/udmodel.py +0 -0
  88. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/opencl/ma_quadratic.cl +0 -0
  89. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/opencl/ma_uniform.cl +0 -0
  90. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/opencl/orbits.cl +0 -0
  91. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/opencl/qpower2.cl +0 -0
  92. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/osmodel.py +0 -0
  93. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/qpower2.py +0 -0
  94. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/qpower2_cl.py +0 -0
  95. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/__init__.py +0 -0
  96. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/common.py +0 -0
  97. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/ecintersection.py +0 -0
  98. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/model.py +0 -0
  99. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/model_full.py +0 -0
  100. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/model_simple.py +0 -0
  101. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/model_trspec.py +0 -0
  102. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/opmodel.py +0 -0
  103. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/opmodel_full.py +0 -0
  104. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/rrmodel.cl +0 -0
  105. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/rrmodel.py +0 -0
  106. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/rrmodel_cl.py +0 -0
  107. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/roadrunner/tsmodel.py +0 -0
  108. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/transitmodel.py +0 -0
  109. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/models/uniform.py +0 -0
  110. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/orbits/__init__.py +0 -0
  111. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/orbits/orbits.py +0 -0
  112. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/orbits/orbits_py.py +0 -0
  113. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/orbits/taylor_z.py +0 -0
  114. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/param/__init__.py +0 -0
  115. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/param/parameter.py +0 -0
  116. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/param/prior.py +0 -0
  117. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/param/utilities.py +0 -0
  118. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/stars/__init__.py +0 -0
  119. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/stars/btsettl.py +0 -0
  120. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/stars/data/avg_bt_settl.fits +0 -0
  121. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/stars/data/avg_husser2013.fits +0 -0
  122. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/stars/husser2013.py +0 -0
  123. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/__init__.py +0 -0
  124. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/astrometry.py +0 -0
  125. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/constants.py +0 -0
  126. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/de.py +0 -0
  127. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/downsample.py +0 -0
  128. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/eclipses.py +0 -0
  129. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/io/__init__.py +0 -0
  130. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/io/lightcurvedata.py +0 -0
  131. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/keplerlc.py +0 -0
  132. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/mdwarfs.py +0 -0
  133. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/misc.py +0 -0
  134. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/mocklc.py +0 -0
  135. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/octasphere.py +0 -0
  136. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/phasecurves.py +0 -0
  137. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/physics.py +0 -0
  138. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/rv.py +0 -0
  139. {pytransit-2.6.19 → pytransit-2.7.0}/pytransit/utils/tess.py +0 -0
  140. {pytransit-2.6.19 → pytransit-2.7.0}/requirements.txt +0 -0
  141. {pytransit-2.6.19 → pytransit-2.7.0}/setup.cfg +0 -0
  142. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_contamination.py +0 -0
  143. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_jax_uniformdisk.py +0 -0
  144. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_limb_darkening.py +0 -0
  145. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_ma_quadratic.py +0 -0
  146. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_ma_quadratic_nb.py +0 -0
  147. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_qpower2_nb.py +0 -0
  148. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_transitmodel_helpers.py +0 -0
  149. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_uniform_model.py +0 -0
  150. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_uniform_model_nb.py +0 -0
  151. {pytransit-2.6.19 → pytransit-2.7.0}/tests/test_z.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyTransit
3
- Version: 2.6.19
3
+ Version: 2.7.0
4
4
  Summary: Fast and painless exoplanet transit light curve modelling.
5
5
  Author-email: Hannu Parviainen <hpparvi@gmail.com>
6
6
  License: GPLv2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyTransit
3
- Version: 2.6.19
3
+ Version: 2.7.0
4
4
  Summary: Fast and painless exoplanet transit light curve modelling.
5
5
  Author-email: Hannu Parviainen <hpparvi@gmail.com>
6
6
  License: GPLv2
@@ -95,7 +95,9 @@ pytransit/models/opencl/qpower2.cl
95
95
  pytransit/models/roadrunner/__init__.py
96
96
  pytransit/models/roadrunner/common.py
97
97
  pytransit/models/roadrunner/ecintersection.py
98
+ pytransit/models/roadrunner/esmodel.py
98
99
  pytransit/models/roadrunner/model.py
100
+ pytransit/models/roadrunner/model_ecspec.py
99
101
  pytransit/models/roadrunner/model_full.py
100
102
  pytransit/models/roadrunner/model_simple.py
101
103
  pytransit/models/roadrunner/model_trspec.py
@@ -41,7 +41,7 @@ Date
41
41
 
42
42
  """
43
43
 
44
- __version__ = '2.6.19'
44
+ __version__ = '2.7.0'
45
45
 
46
46
  # Generic
47
47
  # -------
@@ -59,7 +59,7 @@ from .models.general import GeneralModel
59
59
  from .models.osmodel import OblateStarModel
60
60
  from .models.gdmodel import GravityDarkenedModel
61
61
 
62
- from .models import RoadRunnerModel, OblatePlanetModel, TransmissionSpectroscopyModel
62
+ from .models import RoadRunnerModel, OblatePlanetModel, TransmissionSpectroscopyModel, EclipseSpectroscopyModel, ESModel
63
63
 
64
64
  TSModel = TransmissionSpectroscopyModel
65
65
  OPModel = OblatePlanetModel
@@ -14,11 +14,13 @@
14
14
  # You should have received a copy of the GNU General Public License
15
15
  # along with this program. If not, see <https://www.gnu.org/licenses/>.
16
16
 
17
- from .transitmodel import TransitModel
17
+ from .transitmodel import TransitModel # noqa
18
18
  from .roadrunner.rrmodel import RoadRunnerModel
19
19
  from .roadrunner.opmodel import OblatePlanetModel
20
20
  from .roadrunner.tsmodel import TransmissionSpectroscopyModel
21
+ from .roadrunner.esmodel import EclipseSpectroscopyModel
21
22
 
22
23
  RRModel = RoadRunnerModel
23
24
  OPModel = OblatePlanetModel
24
25
  TSModel = TransmissionSpectroscopyModel
26
+ ESModel = EclipseSpectroscopyModel
@@ -0,0 +1,88 @@
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
+ # This program is free software: you can redistribute it and/or modify
18
+ # it under the terms of the GNU General Public License as published by
19
+ # the Free Software Foundation, either version 3 of the License, or
20
+ # (at your option) any later version.
21
+ #
22
+ # This program is distributed in the hope that it will be useful,
23
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
24
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25
+ # GNU General Public License for more details.
26
+ #
27
+ # You should have received a copy of the GNU General Public License
28
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
29
+ from typing import Union, List, Optional
30
+
31
+ from numpy import ndarray, atleast_1d
32
+ from numba import njit
33
+
34
+ from ..transitmodel import TransitModel
35
+ from .model_ecspec import esmodel
36
+
37
+ __all__ = ['EclipseSpectroscopyModel']
38
+
39
+
40
+ class EclipseSpectroscopyModel(TransitModel):
41
+
42
+ def __init__(self, parallel: bool = False):
43
+ self.parallel = parallel
44
+ self.model = njit(parallel=parallel, fastmath=False)(esmodel)
45
+ super().__init__()
46
+
47
+ def evaluate(self, f: ndarray, k: Union[float, ndarray], t0: Union[float, ndarray], p: Union[float, ndarray],
48
+ a: Union[float, ndarray], i: Union[float, ndarray], e: Union[float, ndarray] = 0.0,
49
+ w: Union[float, ndarray] = 0.0) -> ndarray:
50
+ """Evaluate the transit model for a set of scalar or vector parameters.
51
+
52
+ Parameters
53
+ ----------
54
+ f
55
+ Flux ratios either as a 1D vector or 2D array
56
+ k
57
+ Radius ratio either as a single float or a 1D vector.
58
+ t0
59
+ Transit center(s) as a float or a 1D vector.
60
+ p
61
+ Orbital period(s) as a float or a 1D vector.
62
+ a
63
+ Orbital semi-major axis (axes) divided by the stellar radius as a float or a 1D vector.
64
+ i
65
+ Orbital inclination(s) as a float or a 1D vector.
66
+ e : optional
67
+ Orbital eccentricity as a float or a 1D vector.
68
+ w : optional
69
+ Argument of periastron as a float or a 1D vector.
70
+
71
+ Notes
72
+ -----
73
+ The model can be evaluated either for one set of parameters or for many sets of parameters simultaneously. In
74
+ the first case, the orbital parameters should all be given as floats. In the second case, the orbital parameters
75
+ should be given as a 1D array-like.
76
+
77
+ Returns
78
+ -------
79
+ ndarray
80
+ Modelled flux either as a 3D ndarray.
81
+ """
82
+ k, t0, p, a, i, e, w = map(atleast_1d, (k, t0, p, a, i, e, w))
83
+ return self.model(self.time, k, t0, p, a, i, e, w, f, self.nsamples[0], self.exptimes[0])
84
+
85
+ def __call__(self, f: ndarray, k: Union[float, ndarray], t0: Union[float, ndarray], p: Union[float, ndarray],
86
+ a: Union[float, ndarray], i: Union[float, ndarray], e: Union[float, ndarray] = 0.0,
87
+ w: Union[float, ndarray] = 0.0) -> ndarray:
88
+ return self.evaluate(f, k, t0, p, a, i, e, w)
@@ -0,0 +1,60 @@
1
+ from math import fabs, floor
2
+
3
+ from meepmeep.utils import d_from_pkaiews, eclipse_phase
4
+ from meepmeep.xy.position import solve_xy_p5s, pd_t15sc
5
+ from numpy import zeros, ndarray, isnan, nan, pi
6
+
7
+ from .common import circle_circle_intersection_area_kite as ccia
8
+
9
+ __all__ = ['esmodel']
10
+
11
+
12
+ def esmodel(times: ndarray, k: ndarray, t0: ndarray, p: ndarray, a: ndarray, i: ndarray, e: ndarray, w: ndarray,
13
+ fratio: ndarray, nsamples: int, exptime: float) -> ndarray:
14
+ if k.ndim != 1:
15
+ raise ValueError(" The radius ratio must be given as an 1D array with shape (npv)")
16
+
17
+ if fratio.ndim != 2:
18
+ raise ValueError(" The flux ratio must be given as a 2D array with shape (npv, npb)")
19
+
20
+ npt = times.size
21
+ npv = fratio.shape[0]
22
+ npb = fratio.shape[1]
23
+
24
+ flux = zeros((npv, npb, npt)) # Model flux
25
+ xyc = zeros((2, 5)) # Taylor series coefficients for the (x, y) position
26
+
27
+ for ipv in range(npv):
28
+ if isnan(a[ipv]) or (a[ipv] <= 1.0) or (e[ipv] < 0.0):
29
+ flux[ipv, :, :] = nan
30
+ continue
31
+
32
+ # -----------------------------------------------------#
33
+ # Calculate the Taylor series expansions for the orbit #
34
+ # -----------------------------------------------------#
35
+ eclipse_shift = eclipse_phase(p[ipv], i[ipv], e[ipv], w[ipv])
36
+ xyc[:, :] = solve_xy_p5s(eclipse_shift, p[ipv], a[ipv], i[ipv], e[ipv], w[ipv])
37
+ te = t0[ipv] + eclipse_shift
38
+
39
+ # --------------------------------#
40
+ # Calculate the half-window width #
41
+ # --------------------------------#
42
+ hww = 0.5 * d_from_pkaiews(p[ipv], k[ipv], a[ipv], i[ipv], e[ipv], w[ipv], -1, 14)
43
+ hww = 0.0015 + exptime + hww
44
+
45
+ # --------------------------#
46
+ # Calculate the light curve #
47
+ # --------------------------#
48
+ for ipt in range(npt):
49
+ epoch = floor((times[ipt] - te + 0.5 * p[ipv]) / p[ipv])
50
+ tc = times[ipt] - (te + epoch * p[ipv])
51
+ if fabs(tc) > hww:
52
+ flux[ipv, :, ipt] = 1.0
53
+ else:
54
+ for isample in range(1, nsamples + 1):
55
+ time_offset = exptime * ((isample - 0.5) / nsamples - 0.5)
56
+ z = pd_t15sc(tc + time_offset, xyc)
57
+ flux[ipv, :, ipt] += 1.0 - (fratio[ipv, :] * ccia(1.0, k[ipv], z)[0] / pi) / (
58
+ 1.0 + fratio[ipv, :] * k[ipv] ** 2)
59
+ flux[ipv, :, ipt] /= nsamples
60
+ return flux
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes