py -3.11 tools/type_connectivity.py --md docs/TYPE_CONNECTIVITY.md の生成物。手で編集しない(直すのは docs/TYPE_ROLES.json と op の宣言)。門は tests/test_type_connectivity.py。
数え方: 入力は 全入力(in_sorts)。「入口から届く」は、入口の型(台帳に entry がある型)と引数だけで値を作る op から始め、全入力がそろった op の出力を足していく不動点。「終端へ届く」は、受ける op をたどって terminal の型に行けること。
型 104(うち any 1) / 入口として数える型 30 / 終端として数える型 13
分類: a 5 / b 10 / c 6 / d 10 / ok 73
全入力で数える(この表の基準):
行き止まり 0(理由なし 0) / 入口なし 1(理由なし 0)
入口から届かない 0 / 終端へ届かない 0 / 細い型(産 or 受 <= 2) 50
参考: 第 1 入力だけ・image から(最初の数え方):
行き止まり 1 / 入口なし 0 / image から届かない 14 / 細い型 54
frame, gradient, graph, hessian, jones, keypoints, match, pointmap, positions, synapse_table, tokensaxes型の宣言の変更・新しい型名は CONTRIBUTING で破壊的変更の扱い。1.0 の前に決める。
| 型 | 分類 | 案 |
|---|---|---|
axes |
a | moment_axes の出力を新しい型 principal_axes に分ける(影響 1 op、型で通っていた誤った鎖 5 本が消える)。受け手は match_pca / obb の前段として principal_axes -> matrix(主軸)/ position(重心)の 2 本。新しい型名なので 1.0 の前にユーザーが決める。 |
gradient |
b | sobel3d の出力を gradient と同じ (gmag, gvec) 形にそろえるか、利得つきの別の型に分ける。いまは受け手が 2 形を見分けて sobel3d の利得 32 を割るので鎖は正しく動くが、利得 1 の 3 本(将来の微分可能レンダラ Mitsuba cuda_ad の勾配など)を渡すと 1/32 に出る —— 形だけでは利得を区別できない。差別化の機会: gradient / hessian を一級の型として受ける op 群(この版で大きさ・面らしさ・行列式・管らしさの 4 本)を、構造テンソルの固有値・主曲率・発散/回転へ広げると、AI が型だけで微分の鎖を安全に組める。AD 勾配をこの型で受けるには、型の値に利得(単位)を持たせる設計が先に要る。 |
hessian |
b | 差別化の機会: hessian3d 以外(多尺度ガウス微分・AD の 2 階微分)の Hessian も同じ 6 成分の形で渡せば、管らしさ・塊らしさ・行列式・主曲率を共通に引き出せる。尺度正規化(σ² を掛けるか)を値に持たせるかが未決なので、多尺度の受け手は案だけ。 |
keypoints |
a | 型を (row, col) と (u, v) の 2 つに分けるか(keypoints_rc を足す等)。分ければ取り違えが型で止まるが、keypoints を返す・受ける op の宣言を全部見直すことになる(産 18 / 受 19)。 |
metrologymodel |
d | 差別化の機会: CAD・図面(dxf / 3MF)から計測モデルを組む入口(table -> metrologymodel)があると『設計値から検査を組む』を型で鎖にできる。新しい入口 op の仕様(図面のどの要素を何の計測にするか)が要るので案だけ。 |
positions |
b | 名前が position(3-D の 1 点)と 1 文字違いで紛らわしい。event_positions への改名は影響 1 op だが型名の変更なので 1.0 の前にユーザーが決める。 |
shapeset |
d | 実データの入口として points を K 本束ねる op(対応が取れていることを形で確かめる)。可変個の入力を取る型の扱いが要るので案だけ。 |
simmodel |
d | 差別化の機会(Fullseye の中心: 物理シミュで真値を作り AI に組合せを考えさせる): いまは鎖を dict で手書きする。型つきの op の鎖(engine の段の列)をそのまま simmodel にする入口と、simmodel x design(実験計画)-> images(掃引した合成画像の束)の op があると、『計画 -> 合成 -> 測る -> 校正』が型だけで組める。design 型はもう在る(doe_*)。新しい op の引数の型(段の列)の決め方が要るので案だけ。 |
sweep |
d | 差別化の機会: 計測した signal と掃引軸(波長・z)から sweep を作る入口(signal x signal -> sweep)。掃引軸を値に持たせるか(型の中身の変更)を決める必要があるので案だけ。 |
tokens |
b | matrix -> tokens の入口(軸の順を引数で名指しさせる形)を足すかどうか。 |
volseq |
d | voxel を時間方向に束ねる入口(voxel x k -> volseq)。可変個の入力の扱いが要るので案だけ。 |
| 型 | 分類 | 産 | 受 | 入口 | 終端 | 処置 | 理由 | 根拠(検索語・確かめた関数) |
|---|---|---|---|---|---|---|---|---|
angle |
ok | 2 | 2 | none | matrix_to_angle と angle_to_matrix の往復(opsreprconv algebra)に refine_rotation_z の初期角が載る。細いが族の中で閉じている。 | OP_INDEX 産 2 / 受 2。reprconv.angle_to_matrix の docstring(度)。 | ||
any |
ok | 107 | 147 | none | 型の付いていない値の総称(identity など素通しの op と、型の宣言が未整理の台帳 op)。到達の計算では『どの型でも満たす』として扱う。 | engine._compatible が any を全型と両立させる。tools/gen_op_facets.py は any を unknown / poly に読み替える。 | ||
attnmap |
ok | 2 | 2 | none | attention_scores(tokens, tokens) が産み attention_weights / attention_apply が受ける、注意機構の中間値。attention_apply が tokens に戻し、tokens_to_matrix で外へ出られる。 | opsllmcore の score カテゴリ 3 op。 | ||
axes |
a | 2 | 5 | open | 別物 2 つが同じ型名に同居している: annotate.axes_transform はグラフ描画の座標変換 dict、match3d.moment_axes は点群の (重心 (3,), 主軸 (3,3), 固有値 (3,)) の 3-tuple。受け手 5 op(data_to_pixel / ticks / grid_lines / plot_series / axes_frame)は全部前者を読むので、moment_axes の返りを渡すと型の上では通る鎖が 5 本ある。 | grep ‘“moment_axes”\/”axes_transform”’ ops*.py、annotate.py:1259 と match3d.py:421 の docstring を読んだ。 | ||
beatcube |
ok | 4 | 9 | none | 干渉の拍の立方体(複素)。産 4 / 受 9、2-D レジストリと台帳の両方にある。 | TYPE_TO_SORT[‘beatcube’]。 | ||
bspline_curve |
ok | 1 | 1 | none | fit_bspline_curve(points) の係数記録。正直な出口は eval_bspline_curve(-> points)の 1 本で足りる(係数を表にしても下流が無い)。 | opsreprconv の docstring『残した袋小路』と同じ判断。 | ||
bspline_surface |
ok | 1 | 2 | none | 曲面当てはめの係数記録。出口は eval_bspline_surface(-> image2d)と surface_residual(-> measurement)。 | opsreprconv の docstring『poly_surface / bspline_surface』。 | ||
calresult |
ok | 5 | 5 | none | simcal_fit が simmodel から作る校正結果。check 系 4 op と simcal_report(-> table)で閉じる。simmodel が入口なので届く。 | opssimcal の fit / check / report。 | ||
cimage |
ok | 10 | 15 | none | 2-D 複素画像。産 10 / 受 15。 | TYPE_TO_SORT[‘cimage’]。 | ||
color |
ok | 5 | 11 | カラーカメラの取り込み(acquire の RGB)。2-D レジストリの色画像。 | none | 2-D レジストリの (H,W,3) 色画像。台帳の rgbimage / rgb とは分けてある(色の符号化が違うと黙って値がずれる。opsimgmetrics.NEW_SORTS の実測)。 | ops.COLOR、opsimgmetrics.NEW_SORTS[‘rgb’]。 | |
conn_graph |
ok | 6 | 20 | none | n×n の重みつき有向隣接行列。消費 20。これまで入口は synapse_table だけで、synapse_table を作る op が無かったため画像からも表からも届かなかった。この版で knn_graph_to_conn_graph(graph ->)と synapse_table_from_table(table -> synapse_table)が入口になった。 | opsconngraph の docstring『型語彙』。 | ||
contour |
ok | 43 | 67 | none | XLD 輪郭 dict。2-D レジストリの主要型(産 43 / 受 66)。 | docs/ADDING_OPS.md の Sort contract。 | ||
coordgrid |
d | 1 | 6 | grid_coords() が引数だけで作る座標格子(SDF を評価する場所)。画像から作るものではない。 | none | SDF 族の評価点。入口は合成(grid_coords)が正しい。 | OP_INDEX: grid_coords の in_sorts = []。消費は *_sdf 6 op。 | |
countrate |
ok | 3 | 3 | none | 光子のレート [Hz]。counts との往復(gate 時間つき)がある。 | reprconv.countrate_to_counts / counts_to_countrate。 | ||
counts |
ok | 13 | 17 | none | 光子カウント(非負の 1-D)。産 13 / 受 17。countrate との往復は gate 時間つき。 | TYPE_TO_SORT[‘counts’]、opsphoton の族、reprconv.counts_to_countrate。 | ||
cpoints |
ok | 4 | 8 | none | 複素平面上の順序つき点列(周回積分用)。産 4 / 受 8。 | opsmath の複素族(cplx_cauchy_value / cplx_contour_integral が受ける)。 | ||
cscalar |
ok | 3 | 1 | none | 複素スカラ。cscalar_to_polar(-> pairs)が出口。 | reprconv.cscalar_to_polar。 | ||
ctgeometry |
d | 1 | 8 | ct_scan_geometry() が引数(方式・軌道・検出器の寸法)だけで作る CT の幾何。画像から作るものではない。 | none | CT のスキャン方式の族(ctscan)の共通の幾何。入口は合成(ct_scan_geometry)が正しい。 | OP_INDEX: ct_scan_geometry の in_sorts = []。消費は ct_forward_project / ct_adjoint_project / fdk・sirt・os_sart・tv_reconstruct / ellipsoid_projections / ct_dual_energy_reconstruct(第 8 便、2026-11-04 の統合で行を足した)。 | |
curvature |
ok | 4 | 2 | none | 主曲率。出口は curvature_to_shape_index / curvature_to_table。中身は 3 つの形が同居している(既知、opsreprconv の docstring『実測した既存の型の嘘』)が受け手が両方を読むので、つながりの問題ではない。 | reprconv._principal が 3 形を受ける。 | ||
deformation |
ok | 1 | 2 | none | tps_fit の変形 dict。tps_warp と deformation_to_points が受ける。 | reprconv.deformation_to_points。 | ||
depth |
ok | 17 | 37 | 距離センサ(RealSense / ZED / OAK / Kinect、acquire の unit=m)。 | none | 深度画像 [m]。産 16 / 受 37。 | docs/CONNECTIVITY.md の acquire 表(unit = m)。 | |
descriptor |
ok | 12 | 3 | none | 形状記述子。matrix / table への出口がある。 | reprconv.descriptor_to_matrix。 | ||
design |
ok | 8 | 5 | 実験計画(doe_lhs / doe_box_behnken など、引数だけで作る計画表)。 | none | 実験計画の表。作るのは引数だけ(計画は測る前に決めるもの)なので入口が正しい。 | opsmultivar の plan カテゴリ 7 op が in_sorts = []。 | |
efdmodel |
ok | 1 | 4 | none | 楕円フーリエ記述子のモデル。reconstruct / invariants / normalize / descriptor_distance の 4 出口。 | elliptic_fourier(pairs)。 | ||
entries |
d | 0 | 1 | 凡例の中身 (色, 文字) の列。図を描く人が書く内容で、計算から出てくる値ではない。 | none | legend_box の第 2 入力だけが使う型。OP_INDEX の sorts 一覧には載っていない(in_sorts にだけ現れる)。 | annotate.legend_box の docstring(entries: (color, text) の列)。grep ‘entries’ を op 名・in/out で引き、作り手 0。 | |
feature |
c | 123 | 1 | 2-D レジストリの有限スカラ(面積比・円形度など)。測った結果そのもの。 | none | 産 122 に対して受 1(feature_to_img)。スカラの測定値は終端で正しい。 | ops.FEATURE、docs/ADDING_OPS.md『feature → a scalar float』。 | |
file |
c | 1 | 2 | ディスク上の音声ファイル(read_wav / read_audio が読む)。 | write_wav の書き出し先(ファイルを作ることが仕事)。 | none | ファイルのパス。書き出しの終端であり、読み込みの入口でもある。 | ops1d: write_wav(signal) -> file、read_wav(file) -> signal。 |
fingerprint |
ok | 1 | 2 | none | センサの PRNU 指紋。fingerprint_correlate / fingerprint_strength_map が受ける。 | opsimgforensics。 | ||
flow2d |
ok | 9 | 21 | none | 2-D の速度場 (H,W,2)。PIV 族の主要型で、産 8 / 受 20。 | opspiv(piv_cross_correlate が産み piv_divergence などが受ける)。 | ||
flow_dense |
ok | 4 | 2 | none | 3-D 密フロー (3,D,H,W)。flow_magnitude / flow_to_rgbimage が出口。 | opsreprconv の flow カテゴリ。 | ||
flow_scattered |
ok | 3 | 2 | none | 散在フロー (N,3)。flow_speed / flow_apply が出口。 | opsreprconv の flow カテゴリ。 | ||
frame |
b | 1 | 1 | frame_axis(frame, axis) -> normals を足した(T / N / B の 1 本を単位ベクトル列として取り出す。直線区間の不定な行は拒否)。 | frenet_frame の (T, N, B) を受ける op が 1 つも無かった(行き止まり)。 | grep ‘frenet\/frame’ を op 名・docs/ops 本文で引いて、frame を入力に取る op は無し(axes_frame は図の枠で別物)。curve3d.frenet_frame の返りを実測。 | ||
gaussians |
ok | 1 | 2 | none | 3DGS 風のガウス群。points との往復と voxel への出口がある。 | opsreprconv の gaussians カテゴリ。 | ||
gradient |
b | 2 | 2 | gradient_magnitude(-> voxel)と gradient_coherence(構造テンソルの面らしさ、-> voxel)を足した。受け手は 2 形を見分けて sobel3d の利得 32 を割る(reprconv._gradient_field)。sobel3d の宣言を別の型に分けるかは design。 | gradient3d と sobel3d が産むのに受け手が 0(行き止まり)。加えて中身が 2 形: gradient3d = (gmag, gvec (D,H,W,3)) の numpy、sobel3d = 利得 32 の torch 3 本 (1,1,D,H,W)。取り違えると大きさが 32 倍ずれ例外は出ない。 | edges3d.gradient3d と match3d.sobel3d の返りを実測。grep ‘gradient’ を op 名で引き、voxel を受ける vol_gradient_magnitude / morph_gradient3d はあるが gradient 型を受ける op は 0。 | ||
graph |
b | 1 | 1 | knn_graph_to_conn_graph(-> conn_graph)を足した。1 本で graph_components / graph_laplacian_spectrum / graph_layout_spectral など 20 op につながる。 | knn_graph の (idx, dist) を受ける op が 0。隣接行列の族(conn_graph、消費 20)は別にあるのに橋が無かった。 | opsconngraph の docstring『既存の graph 種は knn_graph が産むだけで、受ける側が族の外に無い』。geodesic3d.knn_graph の返りを実測。 | ||
hessian |
b | 1 | 2 | hessian_determinant(det H、-> voxel)と hessian_vesselness(Frangi 1998、-> voxel)を足した。 | hessian3d の 6 成分を受ける op が 0(行き止まり)。vol_frangi / vol_hessian_blobness は体積から自分で Hessian を作るので、与えられた Hessian からは何も計算できなかった。 | match3d.hessian3d の返り(list の torch 6 本)を実測。grep ‘hessian\/frangi\/vessel\/eigen’ を op 名・HALCON 名で引いた(sk_hessian / xsk_hessian_eig は 2-D の image -> image)。 | ||
histcube |
ok | 1 | 1 | none | dToF の到達時刻ヒストグラム立方体。dtof_cube_simulate が作り dtof_cube_depth が受ける(実機の入口は SPAD 装置)。 | backends_typed の TYPE_TO_SORT コメント(histcube を既定語彙から外した理由)。 | ||
image |
ok | 460 | 571 | カメラの取り込み(acquire の normalised 画像)と画像ファイル。2-D レジストリの起点。 | 人が見る絵としての出口(Studio・図)。 | none | 2-D レジストリの (H,W) float [0,1]。台帳の image2d と同じ物(alias)。 | SORT_ALIASES(tools/gen_op_facets.py / studio_search.py / tools/gen_capabilities_index.py)で image2d -> image。 |
image2d |
a | 275 | 427 | 台帳側の画像の入口(合成・ファイル)。 | 台帳側の絵の出口(図・Studio・ファイルに書き出す画像)。 | none | 2-D レジストリの image と同じ (H,W) float。名前が 2 つあるのは 2 つの登録面(レジストリと型つき台帳)の歴史で、境界ごとに alias で同一視される(TYPE_TO_SORT[‘image2d’] = ‘image’)。値の契約の差: image は [0,1]、image2d は値域を持たない(実測値の画像)ので、改名でまとめると契約が崩れる。直さない(揺れとして記録)。 | backends_typed.TYPE_TO_SORT、api._RANGE_CONTRACT_SORTS = {image, color}。 |
images |
ok | 20 | 43 | 多フレームの取り込み(同じ視点の束)。 | none | 同じ視点の画像の束 (N,H,W)。産 19 / 受 37。 | tools/gen_op_facets.py ACQUIRABLE‘images’。 | |
indices |
ok | 10 | 4 | none | 整数の添字。labels との往復、select_points、この版で indices_to_positions が出口に加わった。 | reprconv.indices_to_labels。 | ||
jones |
b | 2 | 2 | jones_state(azimuth_deg, ellipticity_deg, amplitude) -> jones を足した。stokes_from_jones の符号の約束に合わせ、stokes_analyze で方位角と楕円率が戻る(実測 10 度 / -15 度が 1e-15 で戻る)。 | Jones ベクトル(長さ 2 の複素 (Ex, Ey))を作れるのは jones_apply だけで、その jones_apply 自身が jones を入力に取る —— 最初の 1 本を作る op が無く、入口から届かなかった(jones_element が作るのは 2x2 の行列 = cimage で、ベクトルではない)。 | optics.jones_apply / jones_element / stokes_from_jones の docstring を読み、grep ‘jones’ を op 名で引いた。opsoptics のコメント『jones — 長さ 2 固定の complex 1-D』。 | ||
keypoints |
a | 25 | 28 | keypoints_rowcol_to_uv / keypoints_uv_to_rowcol を足した(向きを op 名に書いた列の入れ替え)。dlt_pose の t が真値に戻ることを門にした。 | 像面の (N,2)。points と別型にした理由は TYPE_TO_SORT のコメント(shape[1] == 3 の契約)。ただし中身に軸の約束が 2 つ同居している: calib.project_3d_point などは (row, col)、project_points / dlt_pose / pnp_ransac は (u, v) = (列, 行)。取り違えても例外は出ず、姿勢が鏡に映ったように出る(レシピの網羅 W2 の実測: t = (-0.565, 0.61, 3.21) のはずが (0.1, -0.05, 3.0))。 | backends_typed.TYPE_TO_SORT[‘keypoints’]、reprconv の docstring『軸と単位』、docs/RECIPE_COVERAGE.md(W2)の落とした鎖 project_3d_point -> dlt_pose。 | ||
lab |
ok | 2 | 3 | none | CIELAB 画像。ΔE と lab_to_rgb が受ける。 | opsimgmetrics.NEW_SORTS[‘lab’]。 | ||
labels |
ok | 15 | 17 | none | 整数ラベル(体積または 1-D)。産 15 / 受 17。 | TYPE_TO_SORT[‘labels’]。 | ||
labels2d |
ok | 15 | 33 | none | 2-D のラベル画像。産 12 / 受 32。 | opssegmentation。 | ||
lightfield |
ok | 4 | 21 | ライトフィールドカメラ(格子状の視点)。 | none | 4-D (V,U,H,W) のライトフィールド。産 4 / 受 21。 | tools/gen_op_facets.py ACQUIRABLE[‘lightfield’]、TYPE_TO_SORT[‘lightfield’]。 | |
lut |
d | 1 | 2 | color_lut() が引数(色の段)だけで作る色の対応表。 | none | 第 1 入力の数え方では行き止まりに見えるが、color_bar / color_grade が第 2 入力として受けている。作り方は合成が正しい。 | OP_INDEX: color_bar の in_sorts = [image2d, lut]、color_grade = [rgb, lut]。 | |
mask |
a | 16 | 28 | none | 2-D レジストリの region(0/1 の (H,W))と同じ物を blob 族が mask と呼ぶ。境界ごとに alias で同一視される(実測 2026-09-15、gen_capabilities_index のコメント)。直さない(揺れとして記録)。 | SORT_ALIASES の mask -> region。 | ||
match |
b | 8 | 1 | match_component(match, index) -> measurement を台帳(opsreprconv)に足した。2-D レジストリの候補(進化のゲノム)は動かさないため、レジストリには足していない(tests/test_wave0.py が match の候補数を固定している)。 | 2-D レジストリの 1-D 結果ベクトル(area_center = (面積, 行, 列)、ncc_locate = (相関, 行, 列) など 8 op)を受ける op が 0(行き止まり)。HALCON では Row / Column を個別に次へ渡すのが普通の使い方。 | ops.MATCH、backends_auto の MAT = ‘match’ のコメント。grep ‘match’ を op 名・in_sort で引いた。 | ||
matrix |
ok | 94 | 205 | 引数だけで作る行列(内部行列・変換行列・設計行列)。 | none | 一般の 2-D 数値行列(線形代数)。産 91 / 受 191。 | ops.MATRIX、OP_INDEX で in_sorts = [] の作り手 13。 | |
measurehandle |
d | 3 | 4 | gen_measure_rectangle2 / gen_measure_arc が測定窓の幾何(中心・向き・長さ)から作る HALCON の測定ハンドル。 | none | ハンドルは引数から作るものなので入口が正しい。 | opsmeasure1d の caliper カテゴリ。 | |
measurement |
c | 96 | 6 | 台帳の数 1 個(長さ・角度・誤差)。測定値そのもの。 | none | 台帳の数 1 個。産 94 / 受 6 で、測った結果そのものなので終端で正しい。 | TYPE_TO_SORT[‘measurement’] = ‘feature’(2-D の feature と同じ席)。 | |
mesh |
ok | 23 | 49 | メッシュファイル(STL / OBJ / OFF / PLY の読み込み)。 | none | 三角メッシュ (vertices, faces)。産 23 / 受 49。 | opsfileio の mesh_read_stl / mesh_read_obj / mesh_read_off。 | |
metrics |
ok | 2 | 2 | none | 画質指標の測定記録(条件つき)。metrics_table が出口。 | opsimgmetrics.NEW_SORTS[‘metrics’]。 | ||
metrologymodel |
d | 2 | 7 | create_metrology_model() が空のモデルを作り、add_metrology_object_* で幾何を足す HALCON の流儀。 | none | モデルは画像から作るのではなく設計値から組むものなので入口が正しい。 | opsmeasure1d / HALCON create_metrology_model。 | |
normalmap |
ok | 15 | 33 | none | 法線画像 (H,W,3)。産 15 / 受 33。 | opsspecular のコメント(pointmap と同形だが別の意味)。 | ||
normals |
ok | 10 | 10 | none | 点ごとの単位法線 (N,3)。この版で frame_axis が産み手に加わった。 | TYPE_TO_SORT[‘normals’] = ‘points’(TYPE_ALIAS_LEDGER に理由つき)。 | ||
pairs |
ok | 85 | 60 | none | (x, y) の対 (n,2)。産 85 / 受 58 の主要型。spectrum / surface_psd の対からピークの位置を読む op が無かったので pairs_peak_x(-> measurement)を足した。 | reprconv._n2(2-tuple と (n,2) の 2 形を束ねる)。 | ||
phash |
ok | 2 | 3 | none | 知覚ハッシュ / 透かしのビット列。hash_distance など 3 受け手。 | opsimgforensics。 | ||
pointmap |
b | 2 | 2 | pointmap_to_points(-> points)を足した。drop_nonpositive_z=True で depth_to_points と同じ点が同じ順に出る(実測 max/Δ/ = 1.4e-17)。 | depth_to_organized_points / dem_geocentric_grid が産む (H,W,3) を、単独で受ける op が無かった(bump_normals_fbm の第 2 入力だけ)。点群の族(消費 249)へ渡れなかった。 | range_image.depth_to_organized_points の docstring と返りを実測、match3d.depth_to_points と比較。 | ||
points |
ok | 83 | 253 | 距離センサ・3-D スキャナ(XYZ ファイルの読み込みを含む)。 | none | 点群 (N,3)。産 79 / 受 249。 | tools/gen_op_facets.py ACQUIRABLE[‘points’]、opsfileio points_read_xyz。 | |
polsweep |
ok | 4 | 6 | 偏光カメラ・検光子を回した掃引。 | none | 偏光の掃引 (N,H,W)。images と分けた理由は opsspecular のコメント(両方向とも黙って間違う)。 | tools/gen_op_facets.py ACQUIRABLE[‘polsweep’]。 | |
poly_surface |
ok | 1 | 1 | none | 多項式曲面の係数記録。出口は eval_poly_surface(評価する)が唯一の正直な出口。 | opsreprconv の docstring『残した袋小路』。 | ||
pose |
ok | 17 | 8 | none | 剛体姿勢 (R, t)。産 16 / 受 7(誤差・バンドル調整・姿勢グラフ)。この版で pose_to_matrix(-> matrix 4x4)を足し、4x4 を受ける rotation_translation_error などへ渡れるようにした。 | ops3d の pose_estimation / registration / pose_graph カテゴリ。 | ||
position |
ok | 12 | 4 | none | 3-D の 1 点 (z,y,x)。points との往復がある。positions(1-D の事象位置の列)とは別物で、名前が近いだけ。 | reprconv.position_to_points / points_to_position。 | ||
positions |
b | 1 | 1 | indices_to_positions(indices, spacing, origin) -> positions を足した(find_peaks -> indices_to_positions -> point_spectrum の鎖)。 | point_spectrum が受ける『事象の位置の列』(欠陥・到着の位置)を作る op が 0(入口なし)。signal と分けてある理由は、等間隔標本と事象位置を取り違えると例外なしに別物のスペクトルが出るため(dsp.point_spectrum の docstring)。 | grep ‘positions’ を op 名・in/out で引き、産み手 0。近い量は find_peaks(-> indices)と peak_subbin(-> signal)。 | ||
primitive |
ok | 33 | 9 | none | 当てはめた幾何プリミティブ(平面・球・箱)。産 33 / 受 9。 | ops3d の geometry / robust_fit。 | ||
projstack |
ok | 2 | 6 | none | CT の投影束 (view, V, U)。ct_forward_project / ellipsoid_projections が産み、FDK・反復法の再構成が受けて voxel に戻す。sinostack とは軸の順序が違うので別の型。 | OP_INDEX 産 2(ct_forward_project / ellipsoid_projections)/ 受 6(ct_adjoint_project・fdk・sirt・os_sart・tv_reconstruct・ct_dual_energy_reconstruct)。第 8 便、2026-11-04 の統合で行を足した。 | ||
qimage |
ok | 19 | 24 | none | 四元数画像(色の回転・フィルタ)。産 19 / 受 24。 | TYPE_TO_SORT[‘qimage’]、opsquat。 | ||
region |
ok | 178 | 136 | none | 2-D レジストリの 0/1 領域。産 177 / 受 136。 | docs/ADDING_OPS.md の Sort contract。 | ||
rgb |
ok | 58 | 36 | 台帳の描画・合成(gfx2d)の色画像。 | 人が見る色の絵(gfx2d の合成結果・図)。 | none | (H,W,3) の色(符号化を特定しない 3 チャネル)。rgbimage と分けた理由は opsimgmetrics.NEW_SORTS(L* が 32.53 でなく 5.72 と静かに出る実測)。 | opsimgmetrics.NEW_SORTS[‘rgb’]。 |
rgba |
ok | 11 | 7 | 合成した絵(ストレート α)。 | none | (H,W,4) ストレート α。rgba_premul と分けた理由は opsgfx2d の docstring。 | opsgfx2d の docstring(rgba / rgba_premul を分けた理由)。 | |
rgba_premul |
ok | 2 | 2 | none | 乗算済み α。premultiply / unpremultiply の往復で閉じる。 | opsgfx2d の premultiply / unpremultiply / alpha_composite_premul。 | ||
rgbimage |
ok | 42 | 38 | 線形 RGB の絵(断面・可視化の出口、Studio で見せる)。 | none | 線形 RGB (H,W,3)。pointmap / normalmap と同形だが意味が違うので分けた(opsspecular のコメント)。 | TYPE_TO_SORT[‘rgbimage’]。 | |
rgbvideo |
ok | 8 | 4 | 展示と Studio へ渡す色動画(opsconngraph の docstring『受ける op は無い(出口)』)。 | none | (F,H,W,3) の色動画。受ける op は無く、展示と Studio へ渡す出口。 | opsconngraph の docstring『rgbvideo』。 | |
rgbvolume |
ok | 3 | 2 | none | 色つき体積。断面・MPR の rgbimage が出口。 | opsvolcolor(vol_label_slice_rgb / vol_label_mpr_rgb が受ける)。 | ||
rle_region |
ok | 5 | 7 | none | ランレングスの 3-D 領域。産 5 / 受 7。 | ops3d rle_region。 | ||
roots |
ok | 1 | 1 | none | 多項式の解集合(順序に意味が無い)。cpoints へ流さない理由は opsreprconv の docstring。cplx_rational_field が受ける。 | opsreprconv の docstring『roots』。 | ||
rot_scale |
ok | 2 | 1 | none | 回転角と倍率の対。matrix との往復がある。 | reprconv.rot_scale_to_matrix。 | ||
scalar |
c | 93 | 195 | 数 1 個(index・合否・個数)。 | none | 産 89 / 受 195(引数として多く受けられる)。終端でもある。 | gen_capabilities_index の SORT_ALIASES(measurement / feature と連鎖の中では同じ『数 1 個』)。 | |
score |
ok | 1 | 3 | none | 相関スコアの体積。score_to_position / score_to_image2d / refine_peak_newton が受ける。 | opsreprconv の score カテゴリ。 | ||
sdf |
ok | 17 | 9 | none | 符号つき距離場の体積。産 17 / 受 9。 | TYPE_TO_SORT[‘sdf’] = ‘volume’(TYPE_ALIAS_LEDGER に理由つき)。 | ||
shapemodel |
ok | 1 | 5 | none | 形の PCA モデル。shapeset から作り、5 op が受ける。shapeset が入口なので届く。 | shapestats.shape_pca。 | ||
shapeset |
d | 2 | 3 | 対応の取れた点集合の群 (K,N,3)。いまの作り手は shape_synth_family()(合成)だけで、実データは外から来る。 | none | 統計的形状モデルの入力。点の対応(landmark)が前提なので、ばらばらの点群から勝手には作れない。 | shapestats.shape_synth_family / generalized_procrustes の docstring。 | |
shift |
ok | 2 | 1 | none | 整数の 3-D 平行移動。vector との往復。 | reprconv.shift_to_vector。 | ||
signal |
ok | 164 | 308 | センサ・音声の時系列(ファイル・取り込み)。 | none | 1-D 配列(プロファイル・スペクトル・センサ系列)。産 161 / 受 306。 | ops.SIGNAL、ops1d の docstring(1-D データの源流 3 つ)。 | |
simmodel |
d | 2 | 5 | simcal_model() が op の鎖とノブ(単位・範囲・雑音)の宣言から作る順モデル。 | none | シミュレーションの模型は設計から組むものなので入口が正しい。simcal_observe(simmodel, images)で実測と結びつく。 | simcal.simcal_model の docstring。 | |
sinogram |
ok | 8 | 10 | CT 装置の投影データ(角度 × 検出器)。 | none | CT のサイノグラム(角度 × 検出器)。産 8 / 受 10。 | opstomography(radon / fbp の族)。 | |
sinostack |
ok | 1 | 1 | none | 体積のサイノグラム束。radon_volume と fbp_volume の往復で閉じる。 | opstomography の radon_volume / fbp_volume。 | ||
sprites |
ok | 1 | 2 | none | 同形 rgba の list。tilemap_render / parallax_layers が受ける。 | opsgfx2d の docstring『sprites』。 | ||
stokes |
ok | 3 | 2 | none | Stokes ベクトル。mueller_apply / stokes_analyze が受ける。 | opsoptics / opsspecular。 | ||
sweep |
d | 2 | 3 | 掃引軸に沿って標本化した強度(白色干渉・クロマティック共焦点)。作り手は *_simulate の合成だけで、実機の分光器・z 走査の出力が入口。 | none | 掃引信号は計測器が出すもの。合成の作り手が入口として正しい。 | opsinterferometry のコメント『sweep — 掃引軸に沿って標本化した非負の 1-D 強度』。 | |
synapse_table |
b | 1 | 1 | synapse_table_from_table(table, pre, post, count) -> synapse_table を足した(id が 0 以上の整数であることを確かめる)。 | graph_from_synapses が受けるのに作る op が 0(入口なし)。コネクトームは CSV で来るので table から作れるのが自然。 | grep ‘synapse’ を op 名で引き、作り手 0。opsfileio.table_read_csv(text -> table)はある。 | ||
table |
c | 1266 | 525 | CSV / 設定の表(table_read_csv、引数だけで作る表)。 | 報告書・測定結果の表(列名 -> 配列)。 | none | 産 1166 / 受 482。最も多い終端。dict を返す op の欄を次の op へ渡すつなぎが無かったので、この版で table_field_image2d / _signal / _matrix / _measurement を足した(vx_sobel3x3 -> vx_magnitude、swt_map -> text_candidates、flow_from_depth_motion -> ttc_from_flow、label_extent の width)。 | opsfileio table_read_csv / table_write_csv。 |
text |
c | 13 | 29 | ファイルの中身(CSV・OBJ・XYZ の文字列)。 | 書き出す文字列(CSV・G-code・報告)。 | none | 文字列。読み込みの入口であり書き出しの終端。 | opsfileio(_read_ は text を受け、table_write_csv は text を返す)。 |
tokens |
b | 8 | 10 | LLM の活性(Q / K / V の (T, d) 行列)。外のモデルから来る。 | tokens_to_matrix(-> matrix)を足した。出る側は一般の行列でよい(mat_cond などが掛かる)。逆向き matrix -> tokens は軸の順を確かめられないので足さない。 | 注意機構の演算族の値。入口は外(d)で正しいが、出口が 1 つも無かった: tokens と attnmap を受ける op は全部 tokens か attnmap を返すので、表・測定値・絵のどれにも出られなかった(終端へ届かない)。 | opsllmcore の _CATALOG 10 op の出力を全部見た。tokens を matrix と分けた理由は opsllmcore の docstring(入る側で転置が黙って通る)。 | |
transport_plan |
ok | 2 | 2 | none | 最適輸送の計画。apply_transport / transport_cost が受ける。 | opscolortransport。 | ||
vector |
ok | 7 | 10 | none | 小さな実ベクトル。shift との往復ほか。 | reprconv.vector_to_shift。 | ||
video |
ok | 40 | 61 | カメラの動画ストリーム(acquire の取り込み)。 | 動画として見せる出口(展示・Studio)。 | none | (T,H,W) の灰色動画。産 40 / 受 61。 | tools/gen_op_facets.py ACQUIRABLE[‘video’]、opsvideostream。 |
volseq |
d | 5 | 10 | 4-D の体積の時系列(ライトシート顕微鏡など)。作り手は volseq_synth_* の合成で、実データは外から来る。 | none | 体積の時系列は装置が出すもの。合成の作り手が入口として正しい。 | opslive4d の synth カテゴリ。 | |
volume |
ok | 23 | 17 | CT / MRI の体積取り込み。 | none | 2-D レジストリの 3-D float stack。台帳の voxel と同じ物(TYPE_TO_SORT[‘voxel’] = ‘volume’)。 | tools/gen_op_facets.py ACQUIRABLE[‘volume’]。 | |
voxel |
a | 74 | 106 | none | 2-D レジストリの volume と同じ (D,H,W) を台帳が voxel と呼ぶ。境界で alias される(TYPE_TO_SORT)。sdf / labels も同じ sort に畳まれるが、それは TYPE_ALIAS_LEDGER に理由つきで記録済み。直さない(揺れとして記録)。 | backends_typed.TYPE_TO_SORT、docs/TYPE_ALIAS_LEDGER.json。 | ||
zscan |
ok | 1 | 2 | none | z 走査の画像束(白色干渉)。csi_contrast_map / csi_height_map が受ける。 | opsinterferometry。 |