---
title: "Replay the WASP-43b MIRI phase curve"
description: "Replay fixed WASP-43b MIRI products, propagate a conditional harmonic posterior and examine ephemeris, map and thermal degeneracies."
canonical_url: "https://sandboxphysics.com/stories/planet-phase-curves/replay-wasp43-miri/"
language: "en"
page_type: "story"
alternate_languages:
  zh-CN: "https://sandboxphysics.com/zh/stories/planet-phase-curves/replay-wasp43-miri/"
last_modified: "2026-10-28"
---

[Exoplanet day and night](https://sandboxphysics.com/stories/planet-phase-curves/)

AC21 · L3

# Replay the WASP-43b MIRI phase curve

Sandbox Physics · 2026-10-28

This calculation starts from Bell and colleagues' fixed Zenodo release, version one of record 10525170. It fits dimensionless brightness changes in the provided detrended data, propagates a conditional posterior, and then compares two kinds of ambiguity: missing map modes and the capacity–flow trade-off in a separate synthetic thermal experiment.

## Before you begin

The projection chapter; Python environment setup and Gaussian uncertainties, explained below.

## Open the actual products first

Download the public science bundle below and unpack it into an ordinary directory. It includes selected unchanged HDF5 products, row-preserving CSV derivatives, the source configuration, attribution, file hashes, independent Python scripts and frozen outputs. The scripts run in that directory with ordinary scientific Python libraries. Use the pinned NumPy, SciPy and h5py versions in requirements.txt.

```
                    python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
python -W error replay-miri.py
python -W error replay-thermal.py
                  
```

The source observation is JWST DD-ERS programme 1366, observation 11, taken with MIRI's low-resolution slitless mode. The original ZIP contains 11,533,870 bytes and has the published MD5 d14c633b7cdc15a9c990a92cc4fc9b86. The bundle preserves the selected original bytes and records their SHA-256 values. The source API snapshot identifies CC BY 4.0 and names all eighteen dataset creators.

Eureka v1 names one reduction. The source reports Eureka 0.9, jwst 1.8.3, CRDS 11.16.16 and context 1018; this replay starts after their extraction.

The extracted file has 9216 sample times and fourteen wavelength channels. Its flux is already calibrated, background-treated and median-normalized; it is not an array of detector pixels. The selected white band is five to ten and a half micrometres. The last three spectral channels remain in the files but are excluded from the main analysis because of the documented shadowed-region effect. Use the source configuration for the white-band interval; the scalar wavelength attribute is retained unchanged in the file.

Reading: Taylor James Bell and the 17 other named Zenodo creators, Products and Models for Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b · Taylor J. Bell et al., Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b

## Check the clock and preserve rejected rows

The extracted times are BMJD\_TDB numbers around 59914. The figure product stores numbers around 2459914, although its inherited attribute also says BMJD\_TDB. Cross-checking the two actual arrays resolves the discrepancy: the figure times equal the extracted times starting at integration 779, plus 2400000.5, within about eighty microseconds of floating-point representation.

The first 779 integrations were trimmed in the source analysis, approximately 134.2 minutes. The figure product retains 8437 rows; 8424 Eureka v1 flux values are finite. The CSV derivatives retain every respective row, original integration index, NaN and source mask. The scripts select their fit samples after reading the complete inputs.

The nominal integration duration is 10.34 seconds. Actual median cadence is about 10.338828 seconds, with a largest gap near 47.74 seconds. The arrays supply midtimes; exact per-readout response weights are unavailable. A uniform ten-second exposure is therefore a declared approximation. Do not create an evenly spaced replacement clock.

The detrended flux is system excess relative to the stellar baseline. It includes negative values during primary transit because the planet blocks stellar light. The present harmonic fit excludes both primary and secondary intervals within 0.045 orbital cycle of conjunction. It uses 6589 actual points to estimate the unobscured planetary variation.

Reading: Taylor James Bell and the 17 other named Zenodo creators, Products and Models for Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b · Taylor J. Bell et al., Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b

## Fit five coefficients and keep their dependence

Define orbital phase from the supplied EPF Value-column period and epoch, with a harmonic angle measured from geometric secondary conjunction. The model has a constant plus first and second sine/cosine terms:

$$
y_i=c_0+c_1\cos\xi_i+s_1\sin\xi_i+c_2\cos2\xi_i+s_2\sin2\xi_i+\epsilon_i.
$$

The observations and all five coefficients are dimensionless flux ratios. The supplied processed standard deviations specify the conditional Gaussian noise model.

A proper prior assigns each coefficient a zero-mean Gaussian distribution with standard deviation 0.02. This is broad compared with the measured ratios, but finite. With design matrix $X$, diagonal error covariance $S$ and prior covariance $P$, completing the square gives the complete Gaussian coefficient posterior:

$$
\Sigma=(X^{\mathsf T}S^{-1}X+P^{-1})^{-1},\qquad
\boldsymbol\mu=\Sigma X^{\mathsf T}S^{-1}\boldsymbol y.
$$

Off-diagonal covariance matters. Sample all coefficients together before calculating a peak, minimum or brightness map.

The script saves 4096 joint draws, their seed and the complete covariance. At the supplied Value-column ephemeris, the median phase peak precedes geometric secondary conjunction by about 7.32 degrees, with conditional sixteenth and eighty-fourth percentiles near 7.03 and 7.60 degrees. The fitted out-of-eclipse peak is about 5764 parts per million, and the minimum about 1587 parts per million. The reduced chi-squared is approximately 0.997 under the supplied diagonal errors.

The minimum occurs at a shifted phase. At primary phase itself, the predicted unobscured nightside ratio is about 1628 parts per million. A curve minimum and the brightness at a defined nightside phase are different summaries.

These are conditional results for an already reduced product. The original detrending posterior and its time covariance are not supplied. Processed errors already include the source scatter treatment, so the calculation does not multiply them by a second fitted factor. The four reductions reuse the same photons. They are not independent likelihoods; their comparison tests sensitivity to the processing choices.

Planet-to-star ratio · parts per million

Orbital phase · primary transit at zero, geometric secondary at one half

Cyan points are inverse-variance bins of selected actual Eureka v1 detrended measurements, with conditional diagonal-error bars. Orange is the unobscured posterior mean; the pale band is one conditional standard deviation. Transit and eclipse points are excluded. This is not the source joint calibration posterior.

Reading: Taylor J. Bell et al., Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b · Taylor James Bell and the 17 other named Zenodo creators, Products and Models for Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b

## Change the timing and the residual assumption

Using the EPF Gaussian prior centres instead of its supplied Value column moves this simple peak estimate to about 8.04 degrees. The source epoch is roughly 4893 cycles before the observation. A small period change accumulates over that many cycles, so choosing the ephemeris matters at the scale of the inferred offset.

The source orbital model also includes light travel. A nominal circular delay is about 15.1 seconds, or 0.077 degree in orbital phase. The harmonic reanalysis reports timing relative to geometric conjunction and keeps that distinction visible. Independent propagation of the quoted period/epoch prior widths gives about 55 seconds, but the unavailable joint covariance prevents calling it a reconstructed orbital posterior.

The adjacent residual correlation is small in this sample, around 0.004. A second calculation groups residuals into blocks of up to sixty-four contiguous integrations without crossing removed rows or large gaps, then applies random block signs. Its peak range is about 6.95 to 7.65 degrees. This is a residual-sensitivity experiment, not a second posterior. The frozen output keeps it beside the conditional interval so the assumptions can be compared.

Reading: Taylor J. Bell et al., Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b · Taylor James Bell and the 17 other named Zenodo creators, Products and Models for Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b

## Give the same curve more than one map

Invert the nonzero Fourier multipliers from the projection chapter. The saved output contains one positive longitude-brightness map and another with an added third cosine mode. They produce the same edge-on, isotropic, phase-only curve. The operation does not turn brightness into gas temperature.

The mapping script also constructs a finite visibility matrix at actual retained timestamps, using every thirty-second sample plus all samples near secondary eclipse. Its thirteen columns represent latitude-independent brightness modes through order six. Two surface resolutions are saved. Phase-only observations retain four vanishing directions; adding the eclipse samples gives nonzero responses in all thirteen columns. Allowing latitude structure adds unknowns, and each weak geometric response must also be compared with measurement noise.

Normalized longitude brightness · ppm

Longitude east of the substellar point · degrees

Orange is one map from the conditional harmonic coefficients; the pale band propagates their complete covariance within the selected modes. The dashed cyan map adds a positive-admissible third cosine mode. Their edge-on isotropic phase-only integrals agree exactly. These are normalized brightness maps; the actual inclined eclipse operator is a different calculation.

Reading: Nicolas B. Cowan and Eric Agol, Inverting Phase Functions to Map Exoplanets · Rodrigo Luger et al., STARRY: Analytic Occultation Light Curves

## Compare heat transport with separately labeled synthetic data

The second script creates twenty-four synthetic bolometric observations from the independently solved thermal layer, adds known twelve-parts-per-million Gaussian errors, and compares albedo with the product of capacity and relative angular flow. These synthetic observations are not the MIRI measurements.

The first coarse finite prior concentrated its albedo percentiles on one node. That failed resolution check remains available as a frozen output. The refined calculation preserves prior mass across the full parameter rectangle and subdivides a fixed interior region, weighting nodes by their cell areas. It saves subdivision comparisons, every final node and its posterior probability. Quantiles still describe the stated finite weighted prior; refinement changes are part of the result.

Along an exact steady ridge, doubling capacity and halving flow leaves the map unchanged. The exercise can recover a range of their product while illustrating why it cannot separately measure both. Real MIRI light covers a finite spectral band and is affected by atmospheric structure; reporting a measured Bond albedo from this one-band harmonic fit would skip the spectral and bolometric inference entirely.

For another dataset, begin with the same questions: which numerical time system is actually stored, what was removed, what the ordinate includes, which products share photons, and which uncertainty has been conditioned on. Then inspect the forward projection before interpreting a map.

Synthetic bolometric data only. Area-weighted finite prior, with all global cells retained; entries are 16th, 50th and 84th percentiles. Refinement resolves the collapsed coarse interval.

| Interior subdivision | Nodes / effective nodes | Bond albedo | Capacity-flow product · W per square metre per K |
| --- | --- | --- | --- |
| 1 | $608,\;2.44$ | $0.213,\;0.213,\;0.213$ | $250,\;270,\;270$ |
| 4 | $1208,\;35.9$ | $0.197,\;0.203,\;0.216$ | $258,\;268,\;283$ |
| 8 | $3128,\;144$ | $0.198,\;0.205,\;0.214$ | $256,\;269,\;281$ |

Reading: Nicolas B. Cowan and Eric Agol, A Model for Thermal Phase Variations of Circular and Eccentric Exoplanets · Nicolas B. Cowan and Eric Agol, The Statistics of Albedo and Heat Recirculation on Hot Exoplanets

## Exercises and explanations

1. A processed value is negative during primary transit. Does the planet emit negative light?

   Read the explanation

   The product is system excess relative to the stellar baseline. The planet blocks stellar light during transit; a thermal-only fit must omit it or model the stellar occultation.

2. A finite grid assigns the same albedo to its 16th and 84th percentiles. Is albedo known exactly?

   Read the explanation

   No. The finite prior may be too coarse to resolve the interval. Refine it and compare; the grid probability only describes its stated nodes.

## Try the prediction

### [Compare the demonstration with the data convention](https://sandboxphysics.com/labs/exoplanet-thermal-phase-curve/)

1. Save a synthetic record and identify its bolometric units.
2. Compare that observable with the tutorial’s finite-band MIRI ratios.
3. List the additional stellar spectrum and instrumental response needed before predicting the real band flux.

[Previous: Add a globe's light to make a phase curve](https://sandboxphysics.com/stories/planet-phase-curves/from-a-globe-to-a-curve/) [Next: Read the chemistry, clouds and maps behind a phase curve](https://sandboxphysics.com/stories/planet-phase-curves/clouds-chemistry-and-maps/)

## Public standalone science files

Download the ZIP for a complete runnable folder, or save individual files. The source products retain CC BY 4.0 attribution. The newly authored independent replay code uses the included MIT science-code license.

[Download the complete standalone ZIP](https://sandboxphysics.com/stories/planet-phase-curves/materials/phase-curve-science.zip)

SHA-256: `4b4805d02673d064892379d7f46b5f37c0ec899702afd20ff1d3b6a57eae93f2`

Individual scientific-file hashes are also inside package-manifest.json.

- [extracted-eureka-v1.h5](https://sandboxphysics.com/stories/planet-phase-curves/materials/extracted-eureka-v1.h5) · 2,589,696 bytes
- [figure-supp1.h5](https://sandboxphysics.com/stories/planet-phase-curves/materials/figure-supp1.h5) · 892,296 bytes
- [spectra-eureka-v1.h5](https://sandboxphysics.com/stories/planet-phase-curves/materials/spectra-eureka-v1.h5) · 12,431 bytes
- [spectra-combined.h5](https://sandboxphysics.com/stories/planet-phase-curves/materials/spectra-combined.h5) · 9,674 bytes
- [S3\_WASP-43b.ecf](https://sandboxphysics.com/stories/planet-phase-curves/materials/S3_WASP-43b.ecf) · 2,924 bytes
- [S4\_WASP-43b\_white.ecf](https://sandboxphysics.com/stories/planet-phase-curves/materials/S4_WASP-43b_white.ecf) · 2,818 bytes
- [S5\_WASP-43b\_white.ecf](https://sandboxphysics.com/stories/planet-phase-curves/materials/S5_WASP-43b_white.ecf) · 2,491 bytes
- [S5\_WASP-43b\_fitpar\_starry\_white.epf](https://sandboxphysics.com/stories/planet-phase-curves/materials/S5_WASP-43b_fitpar_starry_white.epf) · 2,408 bytes
- [extracted-white-9216.csv](https://sandboxphysics.com/stories/planet-phase-curves/materials/extracted-white-9216.csv) · 964,219 bytes
- [detrended-eureka-v1-8437.csv](https://sandboxphysics.com/stories/planet-phase-curves/materials/detrended-eureka-v1-8437.csv) · 916,282 bytes
- [zenodo-10525170.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/zenodo-10525170.json) · 6,698 bytes
- [miri-provenance.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/miri-provenance.json) · 7,986 bytes
- [replay-miri.py](https://sandboxphysics.com/stories/planet-phase-curves/materials/replay-miri.py) · 9,255 bytes
- [phase\_statistics.py](https://sandboxphysics.com/stories/planet-phase-curves/materials/phase_statistics.py) · 3,317 bytes
- [mapping\_operator.py](https://sandboxphysics.com/stories/planet-phase-curves/materials/mapping_operator.py) · 3,590 bytes
- [replay-thermal.py](https://sandboxphysics.com/stories/planet-phase-curves/materials/replay-thermal.py) · 6,913 bytes
- [thermal\_reference.py](https://sandboxphysics.com/stories/planet-phase-curves/materials/thermal_reference.py) · 8,509 bytes
- [requirements.txt](https://sandboxphysics.com/stories/planet-phase-curves/materials/requirements.txt) · 40 bytes
- [miri-posterior.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/miri-posterior.json) · 825,288 bytes
- [mapping-rank.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/mapping-rank.json) · 18,034 bytes
- [thermal-benchmarks.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/thermal-benchmarks.json) · 4,980 bytes
- [synthetic-inference.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/synthetic-inference.json) · 679,151 bytes
- [failed-coarse-synthetic-inference.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/failed-coarse-synthetic-inference.json) · 111,763 bytes
- [README.md](https://sandboxphysics.com/stories/planet-phase-curves/materials/README.md) · 6,442 bytes
- [LICENSE-science.txt](https://sandboxphysics.com/stories/planet-phase-curves/materials/LICENSE-science.txt) · 1,458 bytes
- [package-manifest.json](https://sandboxphysics.com/stories/planet-phase-curves/materials/package-manifest.json) · 13,617 bytes
- [phase-curve-science.zip](https://sandboxphysics.com/stories/planet-phase-curves/materials/phase-curve-science.zip) · 3,759,717 bytes

## Sources and calculation scope

1. [Nicolas B. Cowan and Eric Agol, A Model for Thermal Phase Variations of Circular and Eccentric Exoplanets](https://arxiv.org/pdf/1011.0428v1)

   arXiv:1011.0428v1, submitted 2010-11-01. Sections 2–3, equations 1–10; section 4, equation 13; section 6; figures 1 and 6.

2. [Nicolas B. Cowan and Eric Agol, Inverting Phase Functions to Map Exoplanets](https://arxiv.org/pdf/0803.3622v1)

   arXiv:0803.3622v1, submitted 2008-03-25. Section 2, equations 1–4; section 3.2, equation 7; figure 1.

3. [Nicolas B. Cowan and Eric Agol, The Statistics of Albedo and Heat Recirculation on Hot Exoplanets](https://arxiv.org/pdf/1001.0012v2)

   arXiv:1001.0012v2, revised 2010-12-20. Sections 1, 2.1 and 2.2; equation 3.

4. [Taylor J. Bell et al., Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b](https://arxiv.org/pdf/2401.13027v1)

   arXiv:2401.13027v1, submitted 2024-01-23; dataset v1 published 2024-04-30. Main figures 1–4; Methods Observations and Data Reduction, PDF pages 12–21 including spectral binning, shadowed region, harmonics and Eureka v1 equations 1–7; Data Availability, PDF page 33. Published methods also checked for trimming and light-travel convention.

5. [Rodrigo Luger et al., STARRY: Analytic Occultation Light Curves](https://arxiv.org/pdf/1810.06559v1)

   arXiv:1810.06559v1, submitted 2018-10-15. Section 2.4, equation 16; section 3.1, equations 17–20; sections 3.2–3.3; section 4.2 and figure 5.

6. [Taylor James Bell and the 17 other named Zenodo creators, Products and Models for Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b](https://zenodo.org/records/10525170)

   Zenodo record 10525170, v1, published 2024-04-30. Original API metadata, archive directory, selected HDF5 arrays and attributes, S3/S4/S5 configuration and EPF.
