iran prediction 47개 Python 파일을 prediction/ 디렉토리로 복제: - algorithms/ 14개 분석 알고리즘 (어구추론, 다크베셀, 스푸핑, 환적, 위험도 등) - pipeline/ 7단계 분류 파이프라인 - cache/vessel_store (24h 슬라이딩 윈도우) - db/ 어댑터 (snpdb 원본조회, kcgdb 결과저장) - chat/ AI 채팅 (Ollama, 후순위) - data/ 정적 데이터 (기선, 특정어업수역 GeoJSON) config.py를 kcgaidb로 재구성 (DB명, 사용자, 비밀번호) DB 연결 검증 완료 (kcgaidb 37개 테이블 접근 확인) Makefile에 dev-prediction / dev-all 타겟 추가 CLAUDE.md에 prediction 섹션 추가 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
39 lines
721 B
Python
39 lines
721 B
Python
from dataclasses import dataclass, field
|
|
from typing import List, Dict
|
|
|
|
import pandas as pd
|
|
|
|
|
|
@dataclass
|
|
class AISPoint:
|
|
mmsi: str
|
|
ts: pd.Timestamp
|
|
lat: float
|
|
lon: float
|
|
sog: float
|
|
cog: float
|
|
state: str = 'UNKNOWN'
|
|
|
|
|
|
@dataclass
|
|
class VesselTrajectory:
|
|
mmsi: str
|
|
points: List[AISPoint] = field(default_factory=list)
|
|
vessel_type: str = 'UNKNOWN'
|
|
cluster_id: int = -1
|
|
season: str = 'UNKNOWN'
|
|
fishing_pct: float = 0.0
|
|
features: Dict = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class ClassificationResult:
|
|
mmsi: str
|
|
vessel_type: str
|
|
confidence: float
|
|
dominant_state: str
|
|
fishing_pct: float
|
|
cluster_id: int
|
|
season: str
|
|
feature_vector: Dict
|