swarmflow op• 데이터 종류: table → table
• 호출: import fullseye as fs; fs.ledger.obstacle_fit_doublet(field, speed=None, upstream_only: 'bool' = False, exclude_margin: 'float' = 1.25, min_explained: 'float' = 0.5, min_radius=None) -> 'dict'(구현을 직접 호출하려면 import swarmflow; swarmflow.obstacle_fit_doublet(field, speed=None, upstream_only: 'bool' = False, exclude_margin: 'float' = 1.25, min_explained: 'float' = 0.5, min_radius=None) -> 'dict', 원장에서 가져오려면 opsdrive.get("obstacle_fit_doublet"))
속도장에 원기둥 주위의 포텐셜 유동 u − i v = U (1 − R²/(z − z_c)²)를 피팅합니다(구현 2, 2차원 비선형 최소제곱).
미지수는 (x_c, y_c, R², U). 출발점은 2 개: stagnation_from_centerline 와, 격자의 절점을 중심 후보로 한거친 탐색(U 를 고정하면 모형은 R² 에 대해 1 차이므로 닫힌 형식으로 풀림). 설명할 수 있는 비율이 큰 쪽을 채택. 원의 exclude_margin 배보다 안쪽의 격자는 쓰지 않는다(격자로 옮기는 핵이 벽을 넘어 속도를 평균화하기 때문) —— 다시 추정하여 3 회 돌린다. upstream_only 이면 충돌점보다 상류(x < x_c − R)의 격자만으로 맞춘다("부딪히기 전에" 알 수 있는가).
판정: 균일류만의 모형(u, v 가 상수)의 잔차 RSS₀ 에 대해, 원기둥 모형으로 줄어든 비율 1 − RSS₁/RSS₀(교란 중원기둥으로 설명할 수 있는 비율)이 min_explained 이상, 반경이 min_radius(기본 = 격자 간격 2 개) 이상, 중심이 장 안 —— 이 3 가지로 detected. 부정 판정(장애물 없음)은 이 비율이 작은 것으로 나온다. ★반경의 하한은 해상도의 한계: swarm_field_from_tracks 의 격자는 개체 간격 s 마다이므로, 기본으로는 R < 2s 의 장애물을 "있다"고 하지 않는다. 거부가 정당함은 실측으로 확인했다(균일하게 뿌린 입자, R = 0.6 m: R/s ≈ 5 에서 중심·반경 모두 2 % 이내, R/s ≈ 2.5 에서 5 % 이내, R/s ≈ 1.2 에서 반경이 48 % 작게 나옴).
Returns:
dict: center, radius, speed, stagnation, explained, detected, n_used, rms_residual
(m/s), rms_null(m/s).
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_swarm_obstacle_from_flow — py -3.11 examples/poc_swarm_obstacle_from_flow.py
table 를 입력으로 받는 것)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
swarmflow)sph_kernel · sph_density_pressure · swarm_simulate · swarm_render_overhead · swarm_field_from_tracks · swarm_field_from_piv · potential_flow_cylinder · velocity_deficit_map
*Provenance: swarmflow.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.