Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions scripts/imaging/visualization/modeling_visualization_jit.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,19 +312,21 @@
result = search.fit(model=model_mge2, analysis=analysis_mge2)

# The Nautilus output goes to output/<path_prefix>/<name>/<hash>/image/
# The lens quick-update visualizer writes fit_quick.png (via subplot_fit_quick)
# to that image folder during each quick update.
# Quick updates write the normal fit subplot (fit.png) to that image folder —
# the same file full visualization writes. Quick updates run on the main
# thread by default, so the KeyError regression this script guards would
# crash the search rather than be swallowed.
output_search_root = with_test_mode_segment(Path("output")) / output_root / "mge_linear"
produced_pngs = list(output_search_root.rglob("fit_quick.png"))
print(f"fit_quick.png files produced: {len(produced_pngs)}")
produced_pngs = list(output_search_root.rglob("fit.png"))
print(f"fit.png files produced: {len(produced_pngs)}")
for p in produced_pngs:
print(f" {p}")
assert len(produced_pngs) > 0, (
f"no fit_quick.png produced under {output_search_root} — "
"quick-update visualization did not fire"
f"no fit.png produced under {output_search_root} — "
"fit visualization did not fire"
)
print(
"\nPASS: jit-cached fit_for_visualization fires during Nautilus quick updates "
"with MGE linear profiles, fit_quick.png written, no KeyError from "
"with MGE linear profiles, fit.png written, no KeyError from "
"linear_light_profile_intensity_dict lookup."
)
Original file line number Diff line number Diff line change
Expand Up @@ -321,17 +321,19 @@
result = search.fit(model=model_mge2, analysis=analysis_mge2)

# The Nautilus output goes to output/<path_prefix>/<name>/<hash>/image/
# The lens quick-update visualizer writes fit_quick.png during each quick update.
produced_pngs = list(output_search_root.rglob("fit_quick.png"))
print(f"fit_quick.png files produced: {len(produced_pngs)}")
# Quick updates write the normal fit subplot (fit.png) — the same file full
# visualization writes. Quick updates run on the main thread by default, so a
# regression in the quick path would crash the search rather than be swallowed.
produced_pngs = list(output_search_root.rglob("fit.png"))
print(f"fit.png files produced: {len(produced_pngs)}")
for p in produced_pngs:
print(f" {p}")
assert len(produced_pngs) > 0, (
f"no fit_quick.png produced under {output_search_root} — "
"quick-update visualization did not fire"
f"no fit.png produced under {output_search_root} — "
"fit visualization did not fire"
)
print(
"\nPASS: jit-cached fit_for_visualization fires during Nautilus quick updates "
"with MGE linear profiles, fit_quick.png written, no KeyError from "
"with MGE linear profiles, fit.png written, no KeyError from "
"linear_light_profile_intensity_dict lookup."
)
14 changes: 8 additions & 6 deletions scripts/point_source/visualization/modeling_visualization_jit.py
Original file line number Diff line number Diff line change
Expand Up @@ -276,16 +276,18 @@
result = search.fit(model=model2, analysis=analysis_run)

# Nautilus writes quick-update images to output/<path_prefix>/<name>/<hash>/image/
# The lens quick-update visualizer writes fit_quick.png (via subplot_fit_quick).
produced_pngs = list(output_search_root.rglob("fit_quick.png"))
print(f"fit_quick.png files produced: {len(produced_pngs)}")
# Quick updates write the normal fit subplot (fit.png) — the same file full
# visualization writes. Quick updates run on the main thread by default, so a
# regression in the quick path would crash the search rather than be swallowed.
produced_pngs = list(output_search_root.rglob("fit.png"))
print(f"fit.png files produced: {len(produced_pngs)}")
for p in produced_pngs:
print(f" {p}")
assert len(produced_pngs) > 0, (
f"no fit_quick.png produced under {output_search_root} — "
"quick-update visualization did not fire"
f"no fit.png produced under {output_search_root} — "
"fit visualization did not fire"
)
print(
"\nPASS: jit-cached fit_for_visualization fires during Nautilus quick updates "
f"for point source, fit_quick.png written."
f"for point source, fit.png written."
)
Loading