Skip to content

examples: params files to current practice; examples/README.md - #508

Merged
jdeast merged 7 commits into
masterfrom
docs/examples-readme-sweep
Oct 28, 2026
Merged

jdeast merged 7 commits into
masterfrom
docs/examples-readme-sweep

Conversation

@jdeast

@jdeast jdeast commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

What this does

A. Example params files swept to current practice. A params file is a template: published values, short comments, no narrative. Every edit here is either prose that moved into the example's README, a stale comment removed, or an entry the build already overrides or ignores (with a warning). No value, seed, per-seed initval, citation or modeling choice changed, except the approved changes listed under "Additional approved changes" (each its own commit).

example change
ob07224, ob09020 (+ _linear), ob170114, ob161045, ob140939 (+ _today), ob161003, KMT-2021-BLG-1122L, kb180087_obj3, KMT-2019-BLG-1806, DC2018_128 long derivations and history moved into each README ("Details behind the parameter file" etc.); params keep one-line notes. READMEs that said "recorded in the params file" now point to the moved text.
hat3 (hat3, _mist, _mist_claret, _transitonly) narrative moved into a new hat3/README.md (also a table of the five configs). Own commit (approved by JDE): the hand mass prior (0.92 +/- 0.05) removed from hat3 and hat3_transitonly, where the Torres relations constrain the mass; hat3_staronly keeps it.
gj1214 star.A.loggsed: {bound_scale: 25.0} REMOVED (own commit; approved by JDE, start logp +2.2e-4): it softened the SED barrier while the star sat past NextGen's old logg 5.0 ceiling, and the tables reach 5.5 now. The README keeps the history; sed.md, run.md and mkparam.py describe it in the past tense; test_gj1214_example_ships_the_softened_barrier, which pinned the entry, is removed (the softening mechanics stay covered by the synthetic tests in that file and test_mkparam's round trip).
theophylline the "what you would put here" guidance moved to the README; the file keeps three example lines.
ogle0383 init_scale removed from 7 entries (not a user key: stripped with an "obsolete and ignored" warning); header comment fixed.
ob08092 commented-out stale blocks removed; sigma: 0 dropped on star.Source.mass (derived here: "sigma=0 has no effect", warned).
kelt4_rv+transit+sed EXPERT/HIRES/TRES jitter_variance lower bounds removed: each sat below the component's validity floor, which replaced it with a warning. Stale mass-prior history trimmed.
kelt4, kelt4_sed commented-out blocks with retired spellings (gaussian_width, upper_bound, the undefined EXPERT/FIES entries) removed; the orbit.BC.period history trimmed.
galactic_model stale comments (the "radians" note, commented-out sigmas) cleaned.

Every edited params file parses to the identical YAML except the intended removals above (checked with yaml.safe_load on both versions).

B. examples/README.md (new). One entry per example (collections as one entry), grouped exoplanet / microlensing / other, with what each demonstrates, how to run one, and the warning that a run in place writes into the directory (fitresults/, and mkparam's params.2.yaml).

Evidence: start logp per seed, before -> after

Each config built from a scratch copy of the ORIGINAL and the EDITED tree (prepare + build_model, start logp of every seed from System.get_raw_starts, ModelAuditor.check_user_starts misses, every exozippy warning), serially, under ulimit -v 12000000.

config free RVs start logp per seed (orig) dlogp edit-orig misses warnings status
astrometry_sim/simbinary.yaml 18 -247.570657 (unchanged) 0 0 unchanged
DC2018_128/DC2018_128.2.yaml 14 3374.958059, 1079.294581 (unchanged) 0 1 unchanged
DC2018_128/DC2018_128_hpc.yaml 14 3374.958059, 1079.294581 (unchanged) 0 1 unchanged
DC2018_128/DC2018_128.yaml 14 -> 14 3374.958059, 1079.294581 0, 0 0 -> 0 1 -> 1 identical
GaiaBH1/gaiabh1.yaml 20 -280.188468 (unchanged) 0 0 unchanged
galactic_model/gm.yaml 5 -> 5 -1.147654 0 0 -> 0 0 -> 0 identical
gj1214/gj1214.yaml 25 -> 25 108507.980571 +2.2e-4 0 -> 0 2 -> 2 MOVED (approved: loggsed bound_scale removal)
hat3/hat3_mist_claret.yaml 25 -> 25 272777.841090 0 0 -> 0 1 -> 1 identical
hat3/hat3_mist.yaml 12 -> 12 -49.312378 0 0 -> 0 1 -> 1 identical
hat3/hat3_staronly.yaml 9 -63.615271 (unchanged) 0 0 unchanged
hat3/hat3_transitonly.yaml 21 -> 21 257766.830251 0 0 -> 0 0 -> 0 identical (also after the mass-prior removal: the start sat on the prior center)
hat3/hat3.yaml 22 -> 22 272773.204035 +0.0271 (272773.23110895697) 2 -> 2 0 -> 0 MOVED (approved: hand mass prior removed; prose edits alone were identical)
hd80606/hd80606_rvonly.yaml 21 -125231.194498 (unchanged) 0 1 unchanged
hd80606/hd80606_transitonly.yaml 25 -7237.699432 (unchanged) 0 1 unchanged
hd80606/hd80606.yaml 26 -132354.270924 (unchanged) 0 1 unchanged
HIP1349/hip1349.yaml 18 -342.900149 (unchanged) 0 0 unchanged
kb180087_obj3/kb180087_obj3.yaml 14 -> 14 56832.158978, 56302.445008 0, 0 0 -> 0 0 -> 0 identical
kelt17/kelt17_all.yaml 27 9034.839271 (unchanged) 1 0 unchanged
kelt17/kelt17_dt.yaml 27 8885.065133 (unchanged) 1 1 unchanged
kelt17/kelt17_fast.yaml 20 16951.791646 (unchanged) 0 0 unchanged
kelt17/kelt17_rm.yaml 25 -23541.909475 (unchanged) 1 1 unchanged
kelt17/kelt17.yaml 18 660.543451 (unchanged) 0 0 unchanged
kelt4/kelt4_rvonly.yaml 13 -> 13 -601.556005 0 0 -> 0 0 -> 0 identical
kelt4/kelt4_rv+transit+sed.yaml 23 -> 23 84411.313584 0 0 -> 0 5 -> 5 identical
kelt4/kelt4.yaml 26 -> 26 83450.084720 0 0 -> 0 2 -> 2 identical
KMT-2019-BLG-1806/KMT-2019-BLG-1806_nt24.yaml 20 45542.370303 (unchanged) 0 0 unchanged
KMT-2019-BLG-1806/KMT-2019-BLG-1806.yaml 20 -> 20 45542.370303 0 0 -> 0 0 -> 0 identical
KMT-2021-BLG-1122L/KMT-2021-BLG-1122L.yaml 19 -> 19 -10881.275892 0 0 -> 0 0 -> 0 identical
ob07224/ob07224.yaml 12 -> 12 23203.048906 0 2 -> 2 2 -> 2 identical
ob08092/ob08092.yaml 10 -> 10 6252.184729 0 0 -> 0 1 -> 1 identical
ob09020/ob09020_accept.yaml 21 33537.239628 (unchanged) 0 7 unchanged
ob09020/ob09020_linear.yaml 17 -> 17 47704.736774 0 0 -> 0 1 -> 1 identical
ob09020/ob09020.yaml 21 -> 21 33537.239628 0 0 -> 0 7 -> 7 identical
ob140939/ob140939_today.yaml 16 -> 16 -1978.405083, -1981.117600, -1982.355364, -1988.818053 0, 0, 0, 0 0 -> 0 5 -> 5 identical
ob140939/ob140939.yaml 10 -> 10 -1233.570221, -1234.586300, -1228.057155, -1240.417761 0, 0, 0, 0 0 -> 0 2 -> 2 identical
ob161003/ob161003.yaml 16 -> 16 79400.670516 0 0 -> 0 3 -> 3 identical
ob161045/ob161045.yaml 11 -> 11 22068.857395 0 0 -> 0 1 -> 1 identical
ob170114/ob170114.yaml 24 -> 24 5938.661647 0 0 -> 0 1 -> 1 identical
ogle0383/OGLE_0383LD.yaml 15 -> 15 26739.643689 0 0 -> 0 1 -> 0 identical
toi3919/toi3919_claret.yaml 28 8259.733676 (unchanged) 0 1 unchanged
toi3919/toi3919.yaml 28 8259.733676 (unchanged) 0 1 unchanged
wasp18/wasp18.yaml 24 83524.046483 (unchanged) 0 3 unchanged
DC2018/configs/DC2018_128_mulens.yaml 17 56578.076837, 49331.984584 (unchanged) 0 7 unchanged
DC2018/events/128/DC2018_128.yaml 18 56573.117664, 49364.483627 (unchanged) 0 9 unchanged
DC2018/sweep_v7_avW149/128/DC2018_128.yaml 27 -16429.419009, -677442.121485 (unchanged) 0 2 unchanged
DC2018/ab194/sync/DC2018_194.yaml 27 110668.663060, 110668.308311 (unchanged) 0 2 unchanged
DC2018/ab047/loggwide/DC2018_047.yaml ERROR ValueError: mulensevent.0: ['mmexofast'] -- MMEXOFAST support was removed from E

Notes: "identical" = every seed's logp equal to the bit, free RVs and misses unchanged. "(unchanged)" = the config's params file was not edited (baseline only). Configs that share a params file with a built one and differ only in sampler settings (ob09020_{diag,polish,tune,tuneonly}, KMT-2019-BLG-1806_nt8long) were not built separately. The kelt4_rv+transit+sed and ob08092 removals were built again on their own: logp bit-identical (84411.3135835002, 6252.18472912271), warnings 5 -> 2 and 1 -> 0. ogle0383's warning count goes 1 -> 0 (the init_scale warning). theophylline does not build in a scratch copy (its data file is fetched, not committed); its params file has no entries before or after. DC2018/ab047/loggwide raised on its mmexofast: config key before the commit below removed it.

Additional approved changes (JDE 2026-10-28), each its own commit

  • examples/DC2018: dead mmexofast: key removed from 21 configs (sweep2/, sweep3/, sweep4/ x {047, 069, 103, 152, 194, 223}, ab047/loggwide, ab194/{mamajek,mistlens}). They raised at load before, so there is no "before". Only that line is deleted; every one now builds (prepare + build_model), with the built-in peak finder seeding t_0/u_0/t_E and 0 user-start misses. The MMEXOFAST solutions those JSONs held live in events/<NNN>/DC2018_<NNN>_seed.params.yaml and are NOT merged in (no seeds invented). No generator writes the key.
config free RVs start logp per seed misses warnings peak finder
DC2018/ab047/loggwide/DC2018_047.yaml 28 75439.822 0 2 t_0 = 2459640.7452, u_0 = 0.0300, t_E = 7.094 d from 39438 e
DC2018/ab194/mamajek/DC2018_194.yaml 28 112279.689 0 3 t_0 = 2459665.8102, u_0 = 0.9459, t_E = 10.142 d from 39438
DC2018/ab194/mistlens/DC2018_194.yaml 30 112060.474 0 4 t_0 = 2459665.8102, u_0 = 0.9459, t_E = 10.142 d from 39438
DC2018/sweep2/047/DC2018_047.yaml 27 75762.731 0 2 t_0 = 2459640.7452, u_0 = 0.0300, t_E = 7.094 d from 39438 e
DC2018/sweep2/069/DC2018_069.yaml 27 117405.544 0 4 t_0 = 2460035.4891, u_0 = 0.0025, t_E = 6.845 d from 39438 e
DC2018/sweep2/103/DC2018_103.yaml 27 35894.478 0 2 t_0 = 2458355.8278, u_0 = 0.0231, t_E = 9.112 d from 39436 e
DC2018/sweep2/152/DC2018_152.yaml 27 74957.521 0 3 t_0 = 2458766.3412, u_0 = 1.3356, t_E = 5.032 d from 39438 e
DC2018/sweep2/194/DC2018_194.yaml 27 113636.653 0 3 t_0 = 2459665.8102, u_0 = 0.9459, t_E = 10.142 d from 39438
DC2018/sweep2/223/DC2018_223.yaml 27 103836.117 0 3 t_0 = 2458573.1265, u_0 = 0.0118, t_E = 9.476 d from 39438 e
DC2018/sweep3/047/DC2018_047.yaml 28 75608.978 0 2 t_0 = 2459640.7452, u_0 = 0.0300, t_E = 7.094 d from 39438 e
DC2018/sweep3/069/DC2018_069.yaml 28 116026.701 0 4 t_0 = 2460035.4891, u_0 = 0.0025, t_E = 6.845 d from 39438 e
DC2018/sweep3/103/DC2018_103.yaml 28 35880.069 0 2 t_0 = 2458355.8278, u_0 = 0.0231, t_E = 9.112 d from 39436 e
DC2018/sweep3/152/DC2018_152.yaml 28 74755.343 0 3 t_0 = 2458766.3412, u_0 = 1.3356, t_E = 5.032 d from 39438 e
DC2018/sweep3/194/DC2018_194.yaml 28 112448.907 0 3 t_0 = 2459665.8102, u_0 = 0.9459, t_E = 10.142 d from 39438
DC2018/sweep3/223/DC2018_223.yaml 28 103204.670 0 3 t_0 = 2458573.1265, u_0 = 0.0118, t_E = 9.476 d from 39438 e
DC2018/sweep4/047/DC2018_047.yaml 28 75439.822 0 2 t_0 = 2459640.7452, u_0 = 0.0300, t_E = 7.094 d from 39438 e
DC2018/sweep4/069/DC2018_069.yaml 28 115858.902 0 4 t_0 = 2460035.4891, u_0 = 0.0025, t_E = 6.845 d from 39438 e
DC2018/sweep4/103/DC2018_103.yaml 28 35713.068 0 2 t_0 = 2458355.8278, u_0 = 0.0231, t_E = 9.112 d from 39436 e
DC2018/sweep4/152/DC2018_152.yaml 28 74586.187 0 3 t_0 = 2458766.3412, u_0 = 1.3356, t_E = 5.032 d from 39438 e
DC2018/sweep4/194/DC2018_194.yaml 28 112279.761 0 3 t_0 = 2459665.8102, u_0 = 0.9459, t_E = 10.142 d from 39438
DC2018/sweep4/223/DC2018_223.yaml 28 103035.645 0 3 t_0 = 2458573.1265, u_0 = 0.0118, t_E = 9.476 d from 39438 e
  • ogle0383 lens.Companion.alpha: 1.832 is degrees and is left as is. The value came from MMEXOFAST, whose alpha convention is EXOZIPPy's (docs/alpha_conventions.md, item 0; conventions.md C18), and MMEXOFAST writes degrees (DC2018_128's mmexofast.json: -52.15). Measured: the shipped 1.832 deg gives start logp 26739.644; reading it as radians (104.983 deg) gives 25985.957 (-753.7), its +180 twin 25956.931, its negation 25933.696. The data prefer the value as written by >750 nats, and the earlier fit's restart file (OGLE_0383.paramsLD.2.yaml) sits at 1.877 deg.
  • CLAUDE.md: the run example cd examples/kelt4rvonly && poetry run exozippy kelt4.yaml named a nonexistent directory; it is now cd examples/kelt4 && poetry run exozippy kelt4_rvonly.yaml. Verified as written in a scratch copy of examples/: the fit runs to completion (rc 0, results and kelt4.params.2.yaml written).
  • gj1214 loggsed barrier removal (see the gj1214 row above).
  • hat3 hand mass prior removal (see the hat3 rows above).

The branch is rebased onto master d216e0e (#507, the blackjax fix).

Held (not in this PR)

  • DC2018 1L2S: static orbit instead of hand links (the generator change requested mid-task; moving to a separate PR with the engine fix). Implemented and measured on three real events -- start logp +14.896 (128), +14.836 (194), +14.919 (047), 23 free RVs and 0 misses before and after, same warnings -- but it breaks tests/test_dc18_arch_config.py on the synthetic event those tests generate: with the orbit block present, the peak finder's probe_start reports source.0.t_0 as INFORMED (rank 40 "solved", at the t_0 window's upper edge, 2458509.6) where without it the out-of-window defaults.yaml backstop (2460000, rank 20) is reported uninformed, so the finder "holds" a t_0 nobody gave and the build then refuses the backstop start. Bisected: the orbit block alone causes it (dropping the hand links alone does not). That is an engine/peak-finder interaction, not a generator issue, so the commit is held until it is fixed.

Suggestions (modeling choices, not applied)

  • hat3.params.yaml: band.TESS.u1/u2 carry initval + sigma on derived coefficients; the start never reaches the model (2 user-start misses). A mu: would state the prior center without implying a start.
  • kelt17_full.params.yaml: planet.b.p and planet.b.radius disagree slightly (p dropped, rel 3e-4); star.A.vmacro/vbeta/vmicro (RM) and star.A.vline (DT) are unused by the DT-only / RM-only configs that share the file (warned).
  • KMT-2021-BLG-1122L: the LensB/LensC hand links on distance/pm/rv could become a type: static orbit (pending the issue above); LensC could now be seeded with s:/alpha: (per-companion relations exist since 8.6.13) -- the README still says slot 1 ignores them; the zeropoint mu 16/19 workaround for the dia zp_ref may be revisitable.
  • ob140939_today: the av/feh/logmass priors could carry citation: (Surot+2020, Ness+2013/Zoccali+2017).
  • DC2018 generated params (21 files) pin star.Lens.radius/teff/feh, which those configs deactivate ("your sigma is DROPPED").
  • ob09020: six unfiltered (U) light curves still warn that the flux bootstrap finds a negative blend although the params file seeds their fluxes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW

jdeast and others added 7 commits October 28, 2026 15:39
Params files are templates: published values, short comments, no
narrative.  The derivations and history that sat inline move into each
example's README (new: hat3/README.md); stale comments that described
removed behavior go.  ogle0383 loses its init_scale entries, which are
not a user key (stripped with a warning).  Every edited file parses to the
same YAML except that removal, and every edited config builds to a
bit-identical start logp (PR body has the table).

examples/README.md (new): one entry per example with what it
demonstrates, how to run one, and the warning that a fit run in place
writes into the directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW
kelt4_rv+transit+sed: the EXPERT/HIRES/TRES jitter_variance lower bounds
sat below the component's validity floor, which replaced them with a
warning; the floor is the bound either way.  ob08092: `sigma: 0` on
star.Source.mass, a derived parameter there, had no effect (warned).
Start logp, free RVs and user-start misses are bit-identical; the
warnings go.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW
tests/test_sed_grid_barrier.py pins it there: the caveat belongs where the
person running the example sees it.  Comment-only; the YAML is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW
The entry widened the SED's loggsed barrier while GJ 1214 (logg 5.022)
sat past the NextGen grid's old logg 5.0 ceiling.  The tables reach 5.5
since 2026-10-20, so the star is inside the grid and the measured barrier
applies.  Start logp +2.2e-4 (108507.98057121364 -> 108507.98079425778),
free RVs and user-start misses unchanged; approved by JDE 2026-10-28.

The README keeps the history; sed.md, run.md and mkparam.py describe the
entry in the past tense.  test_gj1214_example_ships_the_softened_barrier
pinned the entry and goes with it; the barrier-softening mechanics stay
covered by the synthetic tests in the same file and by test_mkparam's
bound_scale round trip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW
hat3.params.yaml and hat3_transitonly.params.yaml carried star mass
0.92 +/- 0.05 beside the Torres relations, under a comment saying it was
only there for want of a mass constraint and should come out of a final
run.  Approved by JDE 2026-10-28.  Start logp: hat3 272773.2040354589 ->
272773.23110895697 (+0.0271, the Gaussian term at the start mass 0.9085);
hat3_transitonly unchanged (its start sat on the prior center).  Free RVs
and user-start misses unchanged.  hat3_staronly keeps its prior (no mass
relation there).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW
`cd examples/kelt4rvonly && poetry run exozippy kelt4.yaml` pointed at a
directory that does not exist; the RV-only example is
examples/kelt4/kelt4_rvonly.yaml.  Verified as written (in a scratch copy
of examples/): the fit runs to completion, rc 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW
The sweep2/, sweep3/, sweep4/, ab047/loggwide and ab194/{mamajek,mistlens}
configs named an events/<NNN>/DC2018_<NNN>_seed.json under the
`mmexofast:` key, which was removed on 2026-10-01 and raises at load.
Approved by JDE 2026-10-28.  Only that line is deleted: each config now
builds (prepare + build_model) with the built-in peak finder seeding
t_0/u_0/t_E, 0 user-start misses; the MMEXOFAST solutions those JSONs held
are in the events/<NNN>/DC2018_<NNN>_seed.params.yaml fragments and are
not merged here.  No generator writes the key.  Start logp per config is
in the PR body (there is no "before": they raised).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S5pG2s9aJEo6Xqk6hWvnkW
@jdeast
jdeast force-pushed the docs/examples-readme-sweep branch from c09ea01 to 10f2fe7 Compare October 28, 2026 21:30
@jdeast
jdeast merged commit 866d369 into master Oct 28, 2026
20 checks passed
@jdeast
jdeast deleted the docs/examples-readme-sweep branch October 28, 2026 22:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant