@@ -96,9 +96,12 @@ def load_model(fname: Path | str, name: str | None = None):
96
96
try :
97
97
tb = Table .read (hdul ['WHITE_DATA' ])
98
98
white_ids = tb ['id' ].data
99
- model_flux = tb ['mod_flux' ].data
100
99
uids = unique (white_ids )
101
- a ._white_models = [model_flux [white_ids == i ] for i in uids ]
100
+ a ._white_times = [tb ['time' ].data [white_ids == i ] for i in uids ]
101
+ a ._white_fluxes = [tb ['flux_obs' ].data [white_ids == i ] for i in uids ]
102
+ a ._white_errors = [tb ['flux_obs_err' ].data [white_ids == i ] for i in uids ]
103
+ a ._white_models = [tb ['flux_mod' ].data [white_ids == i ] for i in uids ]
104
+
102
105
except KeyError :
103
106
pass
104
107
@@ -181,6 +184,10 @@ def __init__(self, name: str, ldmodel, data: TSDataGroup | TSData, nk: int = 50,
181
184
self .zero_epoch : float | None = None
182
185
self .transit_duration : float | None = None
183
186
self ._tref = floor (self .data .tmin )
187
+
188
+ self ._white_times : None | list [ndarray ] = None
189
+ self ._white_fluxes : None | list [ndarray ] = None
190
+ self ._white_errors : None | list [ndarray ] = None
184
191
self ._white_models : None | list [ndarray ] = None
185
192
186
193
def lnposterior (self , pvp : ndarray ) -> ndarray :
@@ -413,26 +420,35 @@ def posterior_samples(self) -> pd.DataFrame:
413
420
@property
414
421
def white_times (self ) -> list [ndarray ]:
415
422
"""White light curve time arrays."""
416
- return self ._wa .times
423
+ if self ._wa is None :
424
+ return self ._white_times
425
+ else :
426
+ return self ._wa .times
417
427
418
428
@property
419
429
def white_fluxes (self ) -> list [ndarray ]:
420
430
"""White light curve flux arrays."""
421
- return self ._wa .fluxes
431
+ if self ._wa is None :
432
+ return self ._white_fluxes
433
+ else :
434
+ return self ._wa .fluxes
422
435
423
436
@property
424
437
def white_models (self ) -> list [ndarray ]:
425
438
"""Fitted white light curve flux model arrays."""
426
- if self ._wa ._local_minimization is not None :
439
+ if self ._wa is None :
440
+ return self ._white_models
441
+ else :
427
442
fm = self ._wa .flux_model (self ._wa ._local_minimization .x )
428
443
return [fm [sl ] for sl in self ._wa .lcslices ]
429
- else :
430
- return self ._white_models
431
444
432
445
@property
433
446
def white_errors (self ) -> list [ndarray ]:
434
447
"""White light curve flux error arrays."""
435
- return self ._wa .std_errors
448
+ if self ._wa is None :
449
+ return self ._white_errors
450
+ else :
451
+ return self ._wa .std_errors
436
452
437
453
def add_radius_ratio_knots (self , knot_wavelengths : Sequence ) -> None :
438
454
"""Add radius ratio (k) knots.
@@ -1096,7 +1112,7 @@ def save(self, overwrite: bool = False) -> None:
1096
1112
hdul = pf .HDUList ([pri , k_knots , ld_knots , pr ])
1097
1113
hdul += self .data .export_fits ()
1098
1114
1099
- if self ._wa ._local_minimization is not None :
1115
+ if self ._wa is not None and self . _wa ._local_minimization is not None :
1100
1116
wa_data = pf .BinTableHDU (
1101
1117
Table (
1102
1118
[
@@ -1106,7 +1122,7 @@ def save(self, overwrite: bool = False) -> None:
1106
1122
self ._wa .ofluxa ,
1107
1123
concatenate (self ._wa .std_errors ),
1108
1124
],
1109
- names = "id time mod_flux obs_flux obs_error " .split (),
1125
+ names = "id time flux_mod flux_obs flux_obs_err " .split (),
1110
1126
), name = 'white_data'
1111
1127
)
1112
1128
hdul .append (wa_data )
0 commit comments