sem op• Data kinds: image2d → video
• Call: import fullseye as fs; fs.ledger.sem_charging_series(height, material_map=None, *, materials=('PMMA',), substrate='SI', energy_kev: 'float' = 1.0, pixel_nm: 'float' = 2.0, beam_sigma_nm: 'float' = 1.0, electrons_per_pixel: 'int' = 30, detector: 'str' = 'inlens', frames: 'int' = 12, layer_bottom_nm=0.0, volts_per_electron: 'float' = 0.05, leak_frames: 'float' = 0.0, spread_px: 'float' = 1.0, phi_ev: 'float' = 2.0, gain=None, seed: 'int' = 0, return_potential: 'bool' = False) (to call the implementation directly, import sem; sem.sem_charging_series(height, material_map=None, *, materials=('PMMA',), substrate='SI', energy_kev: 'float' = 1.0, pixel_nm: 'float' = 2.0, beam_sigma_nm: 'float' = 1.0, electrons_per_pixel: 'int' = 30, detector: 'str' = 'inlens', frames: 'int' = 12, layer_bottom_nm=0.0, volts_per_electron: 'float' = 0.05, leak_frames: 'float' = 0.0, spread_px: 'float' = 1.0, phi_ev: 'float' = 2.0, gain=None, seed: 'int' = 0, return_potential: 'bool' = False); from the registry, opsgenerative.get("sem_charging_series"))
Advance insulator charging frame by frame of the scan and return the image over time (video, (T, H, W)).
> The detailed description below is the original text — the summary and the headings are translated.
1 コマで画素あたり electrons_per_pixel 個の電子が入り、η + δ·F(V) 個が出ていく。差し引き 1 − η − δ·F(V) 個が絶縁物の面に溜まり、電位を volts_per_electron [V/個] ずつ動かす(負の電子が溜まれば V は下がる)。電位は spread_px で横に広がり、leak_frames(> 0 なら)の時定数で抜ける。導体の面は接地(V = 0)。
• 正の帯電(η + δ > 1、低加速で多い): 二次電子が面に引き戻され(F(V)、sem_se_escape_fraction)、像は暗くなる。放出が減ると正味の流れも 0 に近づくので、電位は η + δ·F(V*) = 1 の V* で止まる(自己調整)。
• 負の帯電(η + δ < 1、高加速): 面の負の電位が二次電子を押し出し、像は 1 + |V| / (|V| + 20 V) 倍に明るくなる(★現象論の式で、2 定数は固定 —— _NEG_GAIN・_NEG_SCALE_V。着地エネルギーの低下とビームの曲がりは入れない)。
η と δ は sem_image のモンテカルロ(return_signals)で 1 回だけ求め、コマごとの雑音は検出された電子の数のポアソンで載せる。
numpy.ndarray
(frames, H, W) の float64、[0,1] (sem_image と同じ固定の倍率)。
return_potential なら dict(video と、コマごとの電位 potential_v (T, H, W)、
絶縁物の面のマスク insulator)。
>>> import numpy as np
>>> v = sem_charging_series(np.zeros((4, 4)), materials=("PMMA",), substrate="PMMA",
... electrons_per_pixel=5, frames=3)
>>> v.shape
(3, 4, 4)
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_virtual_sem_kv_cd_bse — py -3.11 examples/poc_virtual_sem_kv_cd_bse.py
video as input)—
sem)sem_render · sem_electron_mc · sem_se_universal_curve · sem_yield_curve · sem_line_profile · sem_cd_measure · sem_image · sem_se_escape_fraction
*Provenance: sem.py — GENERATIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.