tb_range_doppler_map — 2D typed op

• Data kinds: beatcube → image

• Call: fullseye.apply(img, "tb_range_doppler_map", a=0.5, b=0.5) (2-D model = एक image + दो scalar knobs a,b∈[0,1])

tb_range_doppler_map: input → output

*Figure synthetic 128×128 input पर सच में चलाकर मिला output है। बाईं ओर input, दाईं ओर output। Point clouds ऊपर से देखे गए scatter के रूप में (brightness = z), 1-D series line के रूप में, volumes z दिशा में maximum-intensity projection के रूप में, videos बीच के frame के रूप में, complex images amplitude के रूप में, और जो return values चित्र नहीं बन सकते वे स्वयं values के रूप में दिखाए जाते हैं।*

*Knob a output नहीं बदलता (मापा गया: 0.1 / 0.5 / 0.9 पर एक जैसा)।*

*Knob b output नहीं बदलता (मापा गया: 0.1 / 0.5 / 0.9 पर एक जैसा)।*

Stages (पहले आने वाले ops → यह op, बाएँ से क्रम में):

▸ tb_range_doppler_map: stages का figure (docs site)

दूसरी images पर भी (synthetic scene / photo / coins। ऊपर की row में inputs, नीचे की row में उनके outputs। Knobs default पर):

▸ tb_range_doppler_map: दूसरी images पर output (docs site)

उपयोग

beat cube का 2-D FFT -> (n_doppler, n_range) magnitude map।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Fast time transforms to range (last axis, not shifted: bin j is j * c*f_s/(2*S*N_s) metres, and a physical range is always positive so the whole [0, f_s) band is used). Slow time transforms to velocity (middle axis, fftshifted so the map is centred on zero velocity: bin i is (i - N_c//2) * lambda/(2*N_c*T_c) metres per second, positive = receding).

The antenna axis is collapsed by *combine*: "incoherent" (default) is the mean of the magnitudes, which is angle independent and therefore the right default for detection; "coherent" is the magnitude of the mean, i.e. a beam pointed at boresight, which attenuates an off-boresight target on purpose. antenna=k uses element k alone. For a single-element cube all three agree exactly.

normalize=True divides by N_c * N_s, so a bin-centred target of amplitude a peaks at exactly a (measured: 1.0 for a unit target, absolute error 0.0). The default False keeps the raw FFT magnitude.

No window is applied — compose fmcw_window_apply first if you want one. The output is a plain 2-D float64 array, so every 2-D operator in Fullseye (threshold, morphology, labelling, blob measurement — the pieces a CFAR detector is made of) applies to it directly.

Raises ValueError: a real-valued cube (it would put a mirror ghost of every target at a fabricated range), fewer than 2 chirps or 2 samples, an out-of-range *antenna* index, an unknown *combine*, a cube over the element cap, an FFT that overflows to NaN, or NaN/Inf on the way in.

Typed bridge of the rangedoppler op range_doppler_map into the 2-D evolution registry: the same implementation, called under the op(v, a, b) convention. This op has no tunable parameter; a and b are unused.

संदर्भ (sample data, साहित्य)

• 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 के स्रोत।

Studio में आज़माएँ

नीचे का program सच में चलता है, यह जाँचा गया है (figure वाला ही input)। Studio की help में यह block buttons बन जाता है, जिनसे इसे वहीं load करके चलाया जा सकता है।

img_to_beatcube 0.50 0.50
tb_range_doppler_map 0.50 0.50

▸ यह pipeline load करें  ·  Load करके चलाएँ

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

नीचे के उदाहरण मूल ledger op range_doppler_map को call करते हैं। यह bridge op वही implementation है, बस fn(v, a, b) convention के अनुसार ढाला गया है, इसलिए व्यवहार वैसा ही लागू होता है (केवल call का रूप अलग है)।

• fmcw_range_doppler — py -3.11 examples/fmcw_range_doppler.py

वे अगले ops जिनसे type जुड़ता है (image को input के रूप में लेते हैं)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

इसी category के (typed)

tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample


*Provenance: ops.py — 2D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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