23f60a4254
Merge pull request 'fix: 어구 그룹핑 거리+시간 조건' ( #136 ) from feat/unregistered-gear-clusters into develop
2026-03-20 18:50:30 +09:00
befcd12277
fix: 비허가 어구 그룹핑에 거리제한(10NM) + 수신시각(60분) 조건 추가
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:50:12 +09:00
a6de14ecef
Merge pull request 'release: 비허가 어구 클러스터' ( #135 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m54s
2026-03-20 18:44:16 +09:00
5ba28f54f5
Merge pull request 'feat: 비허가 어구 클러스터 집계 + 폴리곤' ( #134 ) from feat/unregistered-gear-clusters into develop
2026-03-20 18:44:08 +09:00
730872d47e
feat: 비허가 어구 클러스터 집계 + 폴리곤 시각화
...
- AnalysisStatsPanel: 어구그룹/어구수 통계 (주황색)
- FleetClusterLayer: 비허가 어구 ConvexHull 폴리곤 (주황 점선) + 목록 패널
- 허가 선단(HSL 색상) vs 비허가 어구(주황) 별도 시각화
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:43:48 +09:00
3a31b90a96
Merge pull request 'release: 선단 클러스터 UI' ( #133 ) from develop into main
Deploy KCG / deploy (push) Successful in 2m0s
2026-03-20 18:19:56 +09:00
345a5d5250
Merge pull request 'feat: 선단 클러스터 UI — 폴리곤 + 목록 + hover/zoom' ( #132 ) from feat/fleet-cluster-ui into develop
2026-03-20 18:19:46 +09:00
83bcbf48ab
feat: 선단 클러스터 UI — 폴리곤 경계 + 목록 패널 + hover/zoom 인터랙션
...
- FleetClusterLayer: ConvexHull 폴리곤 + 패딩 + 회사별 색상
- 선단 목록 패널: hover→하이라이트, zoom→fitBounds, 선박/어구 목록
- FleetCompanyController: GET /api/fleet-companies (회사명 조회)
- AuthFilter: /api/fleet-* 인증 예외
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:19:27 +09:00
9cf2dbe58c
Merge pull request 'release: 선단 등록 DB + 어구 추적' ( #131 ) from develop into main
Deploy KCG / deploy (push) Successful in 2m3s
2026-03-20 18:07:46 +09:00
5e359ec296
Merge pull request 'feat: 선단 등록 DB + 어망/어구 정체성 추적' ( #130 ) from fix/risk-scoring-and-cluster into develop
2026-03-20 18:07:38 +09:00
bb99387168
feat: 선단 등록 DB + 어망/어구 정체성 추적 시스템
...
- DB 007: fleet_companies, fleet_vessels, gear_identity_log, fleet_tracking_snapshot
- 906척 선단 구성 데이터 적재 (497개 회사, 279쌍 PT)
- FleetTracker: 등록 선단 ↔ AIS 매칭(NAME_EXACT) + 어구 정체성 추적
- track_similarity.py: DTW 기반 궤적 유사도 (TRACK_SIMILAR 플래그)
- scheduler: fleet_tracker 통합 (기존 assign_fleet_roles 대체)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:07:15 +09:00
56b92e408f
Merge pull request 'release: 선단 패턴 매칭 + 수역 위험도' ( #129 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m52s
2026-03-20 17:47:08 +09:00
fae116f7bd
Merge pull request 'feat: 선단 행동 패턴 매칭 + 수역 위험도 가산' ( #128 ) from fix/risk-scoring-and-cluster into develop
2026-03-20 17:46:55 +09:00
c09429b003
feat: 선단 탐지를 행동 패턴 매칭으로 전환 + 수역 위험도 가산
...
- fleet.py: DBSCAN/그리드 → PT 저인망(2척 3NM 유사속도방향) / PS 선망(3+척 2NM) / FC 환적(0.5NM 저속) 패턴 매칭
- risk.py: 특정어업수역 + 미허가 = +25점
- scheduler.py: cluster_id를 fleet 패턴 결과로 교체
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 17:46:10 +09:00
d35cafb6c5
Merge pull request 'release: 위험도 수역 가산 + 클러스터 그리드 셀' ( #127 ) from develop into main
Deploy KCG / deploy (push) Successful in 2m6s
2026-03-20 17:39:16 +09:00
be728bc2d5
Merge pull request 'fix: 위험도 수역 가산 + 클러스터 그리드 셀' ( #126 ) from fix/risk-scoring-and-cluster into develop
2026-03-20 17:39:07 +09:00
d13baf302f
fix: 위험도 점수 수역 가산 + 클러스터 그리드 셀 방식 전환
...
- risk.py: 특정어업수역(ZONE_I~IV) 내 미허가 어선 +25점 가산
- fleet.py: DBSCAN → 고정 그리드 셀(5NM) 클러스터링 (체인 효과 차단)
- max_cluster_size=20으로 거대 클러스터 방지
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 17:38:49 +09:00
93ddb7d1b6
Merge pull request 'release: 선단 Python 전환 + 성능 복원' ( #125 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m59s
2026-03-20 17:28:26 +09:00
16805a1cf0
Merge pull request 'fix: 선단을 Python cluster로 전환 — BFS 제거 + 보라선 제거' ( #124 ) from fix/fleet-grouping-from-python into develop
2026-03-20 17:28:10 +09:00
72f0dc4eba
fix: 선단 그룹핑을 Python cluster 결과로 전환 — 프론트 BFS 제거
...
- ShipLayer: buildFleetGroups() 제거 → Python analysisMap cluster_id 기반
- 선박 클릭 시 같은 cluster_id 멤버만 연결선 표시
- AnalysisOverlay: 보라색 100NM+ 클러스터 연결선 제거
- 프론트엔드 전체 순회 제거로 성능 복원
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 17:27:51 +09:00
fcf1ff5363
Merge pull request 'release: 선단 그룹핑 재설계' ( #123 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m53s
2026-03-20 17:13:18 +09:00
04d128b714
Merge pull request 'feat: 선단 사전 그룹핑 + 동일 그룹 보장' ( #122 ) from fix/score-display-and-fixes into develop
2026-03-20 17:12:59 +09:00
418225c6a7
feat: 선단 그룹핑 재설계 — 사전 클러스터링 + 동일 그룹 보장
...
- buildFleetGroups(): BFS 3NM 클러스터링으로 전체 중국어선 사전 그룹핑
- mmsi → groupId 맵으로 어느 멤버를 눌러도 같은 그룹 표시
- 그룹별 유형 자동 판별 (trawl_pair/purse_seine/transship/cluster)
- ShipLayer: detectFleet → buildFleetGroups 기반으로 전환
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 17:12:42 +09:00
15b68bb634
Merge pull request 'release: 점수표시 + 마커위치 + 클러스터 수정' ( #121 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m50s
2026-03-20 16:19:56 +09:00
abefcc2e4c
Merge pull request 'fix: 점수 8000→80 + 마커 중앙정렬 + 클러스터 eps 3NM' ( #120 ) from fix/score-display-and-fixes into develop
2026-03-20 16:19:50 +09:00
a009534c35
fix: 점수 표시 8000→80 + 강조마커 위치 중앙정렬 + 클러스터 eps 3NM
...
- AnalysisStatsPanel: score*100 제거 (이미 0~100 정수)
- KoreaMap: 불법어선 펄스 링 position:relative+absolute로 선박 아이콘 중앙 오버레이
- fleet.py: DBSCAN spatial_eps_nm 10→3 (116척 단일 클러스터 해소)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 16:19:31 +09:00
7b31f93d86
Merge pull request 'release: AI 분석 패널 개선' ( #119 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m49s
2026-03-20 15:42:57 +09:00
4c9eebab50
Merge pull request 'feat: AI 분석 패널 — 항적 API + 범례 + 스크롤 + 중복 제거' ( #118 ) from feat/analysis-panel-interactive into develop
2026-03-20 15:42:35 +09:00
48c15f9c33
feat: AI 분석 패널 개선 — 항적 API + 범례 + 스크롤 + 중복 제거
...
- Backend: mmsi별 최신 1건만 반환 (중복 제거)
- 항적: signal-batch tracks API 호출 (6시간, 5분 캐시)
- 범례: 위험도 점수 기준 상세 (위치/조업/AIS/허가, 0~100)
- 선박 목록: maxHeight 300px 스크롤 가능
- 선박 클릭 → flyTo + 항적 표시 + 근거 상세
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:42:13 +09:00
318cfa94ad
Merge pull request 'release: AI 분석 패널 인터랙티브' ( #117 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m56s
2026-03-20 15:22:31 +09:00
1ef39c5210
Merge pull request 'feat: AI 분석 패널 인터랙티브 — 선박 목록 + flyTo + 항적' ( #116 ) from feat/analysis-panel-interactive into develop
2026-03-20 15:22:24 +09:00
fe133b142e
feat: AI 분석 패널 인터랙티브 — 선박 목록 + flyTo + 근거 상세 + 항적 표시
...
- 위험도 버튼 클릭 → 해당 레벨 선박 목록 펼침 (최대 50척)
- 선박 행 클릭 → 지도 중심이동(flyTo) + 근거 상세 펼침
- 근거: 위치/활동/다크/GPS/선단 정보 표시
- 선택 선박 항적: trail 데이터를 GeoJSON LineString으로 렌더링
- KoreaMap flyTo 기능 구현 (mapRef.flyTo)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:22:06 +09:00
d6aac611d0
Merge pull request 'release: 분석 오버레이 라이브 위치' ( #115 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m49s
2026-03-20 15:17:09 +09:00
16150ceee1
Merge pull request 'fix: 분석 오버레이 라이브 위치 사용' ( #114 ) from fix/analysis-live-position into develop
2026-03-20 15:17:08 +09:00
1b2f8c65c6
fix: 분석 오버레이 라이브 선박 위치 사용 — allShips prop 전달
...
- KoreaMap에 allShips(전체 라이브 선박) prop 추가
- AnalysisOverlay: allShips 기반으로 분석 대상 매칭 (필터링 무관)
- 불법어선 마커: allShips에서 라이브 위치 참조 (위치 갭 해소)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:16:51 +09:00
b24d43e4a1
Merge pull request 'release: 불법어선 수역 필터 + AI 패널 + 마커' ( #113 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m49s
2026-03-20 14:17:04 +09:00
7bd2ba3451
Merge pull request 'feat: 불법어선 수역 폴리곤 + AI 패널 수정 + 마커 강조' ( #112 ) from feat/fishing-zone-overlay-ui into develop
2026-03-20 14:17:03 +09:00
9507b0da26
fix: 불법어선 수역 내 한정 + AI 패널 항상 표시 + API 1시간 윈도우
...
- 불법어선 필터: classifyFishingZone으로 수역 내 비한국 어선만 판별
- 수역 내 어선에 빨간 강조 링+선박명 마커 표시
- AI 분석 패널: 데이터 유무 무관하게 항상 표시
- Backend: analyzed_at 기준 1시간 윈도우로 확대 (10분 → 1시간)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 14:16:42 +09:00
be38983cc5
Merge pull request 'release: 수역 폴리곤 오버레이 + 마커 가시성' ( #111 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m45s
2026-03-20 14:05:54 +09:00
4cf1c50d05
Merge pull request 'feat: 수역 폴리곤 오버레이 + 마커 가시성 개선' ( #110 ) from feat/fishing-zone-overlay-ui into develop
2026-03-20 14:05:53 +09:00
af02ad12ff
feat: 불법어선 필터 시 수역 폴리곤 오버레이 + 선박 마커 가시성 개선
...
- WGS84 사전 변환 GeoJSON 생성 (런타임 변환 제거)
- FishingZoneLayer: 수역별 색상 fill/line + 이름 라벨
- AnalysisOverlay: 마커 크기 확대, 한글 라벨, 선박명 표시
- fishingAnalysis.ts: EPSG:3857 변환 로직 제거, WGS84 JSON 직접 사용
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 14:05:35 +09:00
6e12883768
Merge pull request 'release: vessel-analysis API + 불법어선 필터 수정' ( #109 ) from develop into main
Deploy KCG / deploy (push) Successful in 2m17s
2026-03-20 13:58:24 +09:00
95f320c9f3
Merge pull request 'fix: vessel-analysis API 500 + 불법어선 필터 수정' ( #108 ) from fix/vessel-analysis-api-mapping into develop
2026-03-20 13:58:22 +09:00
f2a05f742f
fix: vessel-analysis API 500 에러 + 불법어선 필터 기준 수정
...
- JPA bd09OffsetM → @Column(name="bd09_offset_m") 매핑 추가
- chnPrmShip.ts 복원 (허가어선 조회 서비스 누락)
- 불법어선: 영해/접속수역 침범 + risk HIGH+ 어선만 표시
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 13:58:04 +09:00
d09b8de765
Merge pull request 'release: 불법어선 필터 수정' ( #107 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m53s
2026-03-20 13:53:14 +09:00
15d4a4513f
Merge pull request 'fix: 불법어선 필터 비어선 포함 버그 수정' ( #106 ) from fix/illegal-fishing-filter-scope into develop
2026-03-20 13:53:06 +09:00
4478b70cd8
fix: 불법어선 필터에 비어선 포함되는 버그 — risk 조건을 fishing 카테고리에만 적용
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 13:52:49 +09:00
e0f9b5cf64
Merge pull request 'release: numpy float DB INSERT 수정' ( #105 ) from develop into main
Deploy KCG / deploy (push) Successful in 1m46s
2026-03-20 13:40:36 +09:00
597d921441
Merge pull request 'fix: numpy float DB INSERT 오류 수정' ( #104 ) from fix/numpy-float-db-insert into develop
2026-03-20 13:40:34 +09:00
746ddb7111
fix: numpy float → Python native 변환 — DB INSERT 시 np.float64 직렬화 오류 수정
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 13:40:16 +09:00