simcal_fit — SIMCAL fit op

• 데이터 종류: simmodel → calresult

• 호출: import fullseye as fs; fs.ledger.simcal_fit(model=None, method='lm', n_starts=16, fix=None, threshold=10.0, allow_undetermined=False, seed=0) -> 'dict'(구현을 직접 호출하려면 import simcal; simcal.simcal_fit(model=None, method='lm', n_starts=16, fix=None, threshold=10.0, allow_undetermined=False, seed=0) -> 'dict', 원장에서 가져오려면 opssimcal.get("simcal_fit"))

사용법

관측이 붙은 simmodel의 자유 노브를 영상에 맞춘다(가중 최소제곱) -> calresult.

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

Minimises chi^2 = sum over valid pixels of (observed − simulated)^2 / variance, the variance coming from the noise model at the current prediction (re-weighted each

iteration: the quasi-likelihood estimating equation, unbiased for a signal-dependent variance). Knobs live in u in [0, 1] (log knobs on a log axis).

Starting point: the initial knobs and n_starts Latin-hypercube points over the ranges are scored by chi^2 and the best is used (the design's "start from the best point of the plan"). method: "lm" (Levenberg-Marquardt, Marquardt-scaled damping; a raw step that leaves the range is not taken — its projection onto the range is tried, a knob on a range end whose descent points outward is held there, and a point the forward model refuses rejects the step and raises the damping, as in lensopt), "nm" (Nelder-Mead; a point outside the range scores the metric's worst value via metriccontract.value_or_worst), "multistart" (LM from the best n_starts // 4 plan points, at least 2, ranked with metriccontract.best_of — for multi-modal problems such as thin-film fringe orders). fix = {knob: value} pins knobs for this fit.

Refusal (metriccontract.MetricContractError, a ValueError) when, at the end point, a knob has no influence (a full-range move changes chi^2 by less than 3.84), is confounded with others (collinearity index gamma_K > threshold, sensitivity.mv_confounding), or sits within 1 % of a range end — the message names the knobs, the reason and the combinations the data do fix. With allow_undetermined=True those knobs get no value (undetermined holds the reason, status = partial) and determined_combos carries the combinations with their values (a product of powers for log knobs). No noise model / no observed images:

refused.

자세한 사용 가이드

• sim_to_real_calibration 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_pocket_interreflection — py -3.11 examples/poc_pocket_interreflection.py

• poc_simcal_thin_film — py -3.11 examples/poc_simcal_thin_film.py

• simcal_checks_tour — py -3.11 examples/simcal_checks_tour.py

• simcal_tour — py -3.11 examples/simcal_tour.py

타입이 이어지는 다음 연산자(calresult 를 입력으로 받는 것)

simcal_identifiability · simcal_uncertainty · simcal_validate · simcal_discrepancy · simcal_report

같은 카테고리(fit)

simcal_screen


*Provenance: simcal.py — SIMCAL 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.