Skip to content

Commit 6a6a423

Browse files
committed
- Removed noise_group as a property and simplified it as an integer attribute.
- Introduced new bounding box attributes (`bbox_wl`, `bbox_tm`) and respective min/max calculations for wavelength and time. - Adjusted logic to use `bbox_wl` for wavelength bounds in relevant functions. - Removed redundant `_update_nids` and associated properties/methods for noise group handling. - Simplified imports in `exoiris.py` by removing unused items.
1 parent 9bdbb75 commit 6a6a423

File tree

2 files changed

+24
-30
lines changed

2 files changed

+24
-30
lines changed

exoiris/exoiris.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,17 @@
2424

2525
import astropy.io.fits as pf
2626
import astropy.units as u
27-
import emcee
27+
import matplotlib.axes
2828
import pandas as pd
29-
import pytransit.utils.de
30-
import seaborn as sb
3129
from astropy.table import Table
3230
from celerite2 import GaussianProcess, terms
3331
from emcee import EnsembleSampler
3432
from matplotlib.pyplot import subplots, setp, figure, Figure, Axes
3533
from numpy import (any, where, sqrt, clip, percentile, median, squeeze, floor, ndarray, isfinite,
36-
array, inf, newaxis, arange, tile, sort, argsort, concatenate, full, nan, r_, nanpercentile, log10,
34+
array, inf, arange, argsort, concatenate, full, nan, r_, nanpercentile, log10,
3735
ceil, unique)
38-
from numpy.random import normal, permutation
36+
from numpy.random import normal
3937
from pytransit import UniformPrior, NormalPrior
40-
from pytransit.orbits import epoch
4138
from pytransit.param import ParameterSet
4239
from pytransit.utils.de import DiffEvol
4340
from scipy.stats import norm

exoiris/tsdata.py

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,17 @@ def __init__(self, time: Sequence, wavelength: Sequence, fluxes: Sequence, error
108108
self.fluxes: ndarray = where(self.mask, fluxes, nan)
109109
self.errors: ndarray = where(self.mask, errors, nan)
110110
self.transit_mask: ndarray = transit_mask if transit_mask is not None else ones(time.size, dtype=bool)
111-
self.ngid: int = 0
112111
self._ephemeris: Ephemeris | None = ephemeris
113112
self.n_baseline: int = n_baseline
114-
self._noise_group: str = noise_group
113+
self.noise_group: int = noise_group
115114
self.epoch_group: int = epoch_group
116115
self.offset_group: int = offset_group
117116
self._dataset: Optional['TSDataSet'] = None
117+
self.minwl: float = 0.0
118+
self.maxwl: float = inf
119+
self.mintm: float = 0.0
120+
self.maxtm: float = inf
121+
118122
self._update()
119123

120124
if wl_edges is None:
@@ -204,17 +208,6 @@ def import_fits(name: str, hdul: pf.HDUList) -> 'TSData':
204208
def __repr__(self) -> str:
205209
return f"TSData Name:'{self.name}' [{self.wavelength[0]:.2f} - {self.wavelength[-1]:.2f}] nwl={self.nwl} npt={self.npt}"
206210

207-
@property
208-
def noise_group(self) -> str:
209-
"""Noise group name."""
210-
return self._noise_group
211-
212-
@noise_group.setter
213-
def noise_group(self, ng: str) -> None:
214-
self._noise_group = ng
215-
if self._dataset is not None:
216-
self._dataset._update_nids()
217-
218211
@property
219212
def ephemeris(self) -> Ephemeris:
220213
"""Ephemeris."""
@@ -225,6 +218,15 @@ def ephemeris(self, ep: Ephemeris) -> None:
225218
self._ephemeris = ep
226219
self.mask_transit(ephemeris=ep)
227220

221+
@property
222+
def bbox_wl(self) -> tuple[float, float]:
223+
"""Wavelength bounds of the bounding box."""
224+
return self.minwl, self.maxwl
225+
226+
@property
227+
def bbox_tm(self) -> tuple[float, float]:
228+
return self.mintm, self.maxtm
229+
228230
def mask_transit(self, t0: float | None = None, p: float | None = None, t14: float | None = None,
229231
ephemeris : Ephemeris | None = None, elims: tuple[int, int] | None = None) -> 'TSData':
230232
"""Create a transit mask based on a given ephemeris or exposure index limits.
@@ -274,7 +276,10 @@ def _update(self) -> None:
274276
"""Update the internal attributes."""
275277
self.nwl = self.wavelength.size
276278
self.npt = self.time.size
277-
self.wllims = self.wavelength.min(), self.wavelength.max()
279+
self.minwl = self.wavelength.min()
280+
self.maxwl = self.wavelength.max()
281+
self.mintm = self.time.min()
282+
self.maxtm = self.time.max()
278283
if self._ephemeris is not None:
279284
self.mask_transit(ephemeris=self._ephemeris)
280285

@@ -650,7 +655,7 @@ def bin_wavelength(self, binning: Optional[Union[Binning, CompoundBinning]] = No
650655
with warnings.catch_warnings():
651656
warnings.simplefilter('ignore', numba.NumbaPerformanceWarning)
652657
if binning is None:
653-
binning = Binning(self.wllims[0], self.wllims[1], nb=nb, bw=bw, r=r)
658+
binning = Binning(self.bbox_wl[0], self.bbox_wl[1], nb=nb, bw=bw, r=r)
654659
bf, be = bin2d(self.fluxes, self.errors, self._wl_l_edges, self._wl_r_edges,
655660
binning.bins, estimate_errors=estimate_errors)
656661
if not all(isfinite(be)):
@@ -726,19 +731,11 @@ def _add_data(self, d: TSData) -> None:
726731
raise ValueError('A TSData object with the same name already exists.')
727732
d._dataset = self
728733
self.data.append(d)
729-
self._update_nids()
730734
self.wlmin = min(self.wlmin, d.wavelength.min())
731735
self.wlmax = max(self.wlmax, d.wavelength.max())
732736
self.tmin = min(self.tmin, d.time.min())
733737
self.tmax = max(self.tmax, d.time.max())
734738

735-
def _update_nids(self):
736-
ngs = pd.Categorical(self.noise_groups)
737-
self.unique_noise_groups = list(ngs.categories)
738-
self.ngids = ngs.codes.astype(int)
739-
for i,d in enumerate(self.data):
740-
d.ngid = self.ngids[i]
741-
742739
@property
743740
def names(self) -> list[str]:
744741
"""List of data set names."""
@@ -765,7 +762,7 @@ def errors(self) -> list[ndarray]:
765762
return [d.errors for d in self.data]
766763

767764
@property
768-
def noise_groups(self) -> list[str]:
765+
def noise_groups(self) -> list[int]:
769766
"""List of noise group names."""
770767
return [d.noise_group for d in self.data]
771768

0 commit comments

Comments
 (0)