- 1h 실제 활성 멤버 < 2일 때 resolution='1h-fb' (fallback)로 저장
- LATEST_GROUPS_SQL은 resolution='1h'만 필터 → fallback 자동 제외
- 리플레이 history API는 1h-fb 포함 (리플레이/일치율 추적 유지)
- 프론트 리플레이: '1h' + '1h-fb' 모두 1h 프레임으로 처리
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
FLEET 스냅샷에 resolution 필드를 설정하지 않아 DB default '6h'로 저장됨.
LATEST_GROUPS_SQL이 resolution='1h' 필터를 사용하므로 FLEET 전부 누락.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Python: 1h/6h 듀얼 스냅샷 생성 (polygon_builder), 1h 멤버 기반 일치율 후보 (gear_correlation)
- DB: resolution 컬럼 추가 (011_polygon_resolution.sql)
- Backend: resolution 필드 지원 (DTO/Service/Controller)
- Frontend: 6h identity 레이어 독립 구현 (폴리곤/아이콘/라벨/항적/센터)
- 리플레이 컨트롤러: 프로그레스바 통합, 1h/6h 스냅샷 표시, A-B 구간 반복
- 리치 툴팁: 클릭 고정 + 멤버 호버 강조 + 선박/어구/모델 소속 표시
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 서브클러스터별 독립 폴리곤/센터/center trail 렌더링
- 반경 밖 이탈 선박 강제 감쇠 (OUT_OF_RANGE)
- Backend correlation API에 sub_cluster_id 추가
- 모델 패널 5개 항상 표시, 드롭다운 기본값 70%
- DISPLAY_STALE_SEC (time_bucket 기반) 폴리곤 노출 필터
- AIS 수집 bbox 122~132E/31~39N 확장
- historyActive 시 deck.gl 이중 렌더링 수정
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- FleetClusterLayer: 12시간 타임라인 기반 폴리곤 재생 애니메이션
- 중심 이동 궤적 (점선) + 어구별 개별 궤적 (실선)
- 가상 어구/선박 아이콘 COG 회전 + 스냅샷 동기화
- 재생 컨트롤러: 재생/일시정지 + 프로그레스 바 (드래그/클릭)
- 신호없음 구간: 마지막 유효 스냅샷 유지 + 회색 점선 표시
- 히스토리 모드 시 현재 강조 레이어 (deck.gl + MapLibre) 숨김
- ESC 키: 히스토리 닫기 + 선택 해제
- polygon_builder: STALE_SEC 3600→21600 (6시간, 어구 P75 갭 3.5h 커버)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- DB migration 009: group_polygon_snapshots 테이블 (PostGIS geometry)
- polygon_builder.py: Shapely 기반 convex hull + buffer 폴리곤 생성
- scheduler.py: 5분 주기 분석 사이클에 폴리곤 생성 Step 4.5 통합
- fleet_tracker.py: get_company_vessels() 메서드 추가
- kcgdb.py: save_group_snapshots(), cleanup_group_snapshots() 추가
- requirements.txt: shapely>=2.0 추가