matprop op• Data kinds: कोई नहीं → pairs (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)
• Call: import fullseye as fs; fs.ledger.material_nir_absorption(material='POLYETHYLENE', wl_min_nm: 'float' = 900.0, wl_max_nm: 'float' = 2500.0, n_points: 'int' = 321, water_fraction=None, bands=None) (implementation को सीधे call करना हो तो import materials; materials.material_nir_absorption(material='POLYETHYLENE', wl_min_nm: 'float' = 900.0, wl_max_nm: 'float' = 2500.0, n_points: 'int' = 321, water_fraction=None, bands=None), registry से लेना हो तो opsoptics.get("material_nir_absorption"))
near-infrared (0.9–2.5 µm) का absorption coefficient α(λ) [1/mm] (natural log), absorption bands के जोड़ से।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
*material* は NIR_BAND_MODELS の名前か別名(PE / PP / PET / PS / NUT_KERNEL / NUT_SHELL / WOOD / 成分 LIPID …)、または WATER(この時だけ帯のモデルでなく表の k(Hale & Querry 1973)から α = 4πk/λ)。成分を持つ食品・木材は α = Σ fᵢ αᵢ + w α_水 + 基線。*water_fraction* を与えると表の水分率 w を上書きする(湿り・含水率の掃引)。*bands* に ((中心 nm, 半値全幅 nm, α /mm), ...) を与えると帯の表を丸ごと差し替える(実測で合わせた帯を持ち込む口)。
★帯の幅と強さは推定(NIR_BAND_MODELS の注)。中心は一次文献の実測(L 印)か教科書の帰属(H 印)。区間外の外挿はしない(水の表の範囲外は ValueError)。
返り値: pairs(λ nm, α 1/mm)。光源・QE と同じ形なので spectralrad.kubelka_munk_reflectance にそのまま渡せる。
optics के सभी ops गणना से पहले input की जाँच करते हैं (कुछ भी चुपचाप पास नहीं होता):
• Unit argument के नाम में ही लिखी होती है — _mm / _um / _deg / _mrad। mm और µm की गड़बड़ी crash नहीं करती, बल्कि "सही दिखने वाला पर गलत उत्तर" देती है, इसलिए नाम से इसे रोका जाता है। मान के आकार से unit का अनुमान बिल्कुल नहीं लगाया जाता।
• String से ValueError — float('50') सफल हो जाता है, इसलिए बिना parse किया config value length के रूप में निकल जाता (मापा गया: thin_lens('50', '200') सही दिखने वाला 66.667 mm लौटा रहा था)। bool को भी True == 1 वाले implicit promotion के रूप में अस्वीकार किया जाता है।
• complex / masked array से ValueError (केवल real-valued slots; imaginary part को चुपचाप छोड़ना या mask हटाना अस्वीकार)। हर input पर NaN/Inf से ValueError।
• शून्य से भाग और उससे जुड़े मामलों को नाम लेकर अस्वीकार किया जाता है: focal length 0, radius of curvature 0, refractive index <= 0, पूरी तरह opaque aperture (सब 0, इसलिए normalisation 0/0), ऐसा PSF जिसका योग <= 0 हो, S0 = 0 वाला Stokes vector, और front focal point पर रखा object (image अनंत पर)।
• केवल 2 ops non-finite value लौटाते हैं, और वह भी contract के रूप में लिखा हुआ: depth_of_field hyperfocal distance से आगे far_mm = inf (hyperfocal distance की परिभाषा यही है) और gaussian_beam waist पर wavefront_radius_mm = inf (plane wavefront की radius of curvature)। दोनों साथ में एक finite साथी (far_is_infinite / curvature_per_mm) भी लौटाते हैं। इसके अलावा कोई भी चुपचाप आया NaN/Inf अंदर ही पकड़ा जाता है और ValueError देता है — "float64 overflow हुआ" और "उत्तर अनंत है" अलग-अलग दावे हैं, इसलिए पहले को दूसरे का चेहरा पहनाकर नहीं लौटाया जाता।
• Size की सीमा: generate होने वाले grid के लिए optics.MAX_GRID (4096), दिए गए field/PSF/aperture के लिए optics.MAX_FIELD_ELEMENTS (2^24), ABCD element chain के लिए optics.MAX_SYSTEM_ELEMENTS (1024), Zernike के लिए MAX_ZERNIKE_TERMS (512) / MAX_ZERNIKE_ORDER (40) / MAX_ZERNIKE_BASIS (2^25)। छोटे argument से बहुत बड़ा internal allocation होने वाले रास्तों (मापा गया: n_max=40 × 4096² पर 108 GB) को fail-closed ढंग से बंद किया गया है।
• भौतिक रूप से असंभव states भी अस्वीकार: degree of polarisation > 1 वाला Stokes vector, ऋणात्मक transmittance, ऋणात्मक intensity, और n-|m| odd जैसे अमान्य Zernike indices।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_hyperspectral_foreign_matter — py -3.11 examples/poc_hyperspectral_foreign_matter.py
pairs को input के रूप में लेते हैं)mtf50 · energy_to_photons · spectral_product · spectral_integral · spectral_stats · kubelka_munk_reflectance · hyperspectral_capture · film_thickness_fft
matprop)material_table · material_record · material_optical_constants · material_dispersion · material_extinction · material_absorption · material_transmittance · material_reflectance
*Provenance: materials.py — OPTICS operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.