diff --git a/frontend/public/dar03/bottom-trawl.png b/frontend/public/dar03/bottom-trawl.png new file mode 100644 index 0000000..54d0a09 Binary files /dev/null and b/frontend/public/dar03/bottom-trawl.png differ diff --git a/frontend/public/dar03/gillnet.png b/frontend/public/dar03/gillnet.png new file mode 100644 index 0000000..e00b6e9 Binary files /dev/null and b/frontend/public/dar03/gillnet.png differ diff --git a/frontend/public/dar03/pair-trawl.png b/frontend/public/dar03/pair-trawl.png new file mode 100644 index 0000000..1640710 Binary files /dev/null and b/frontend/public/dar03/pair-trawl.png differ diff --git a/frontend/public/dar03/pot-trap.png b/frontend/public/dar03/pot-trap.png new file mode 100644 index 0000000..e552661 Binary files /dev/null and b/frontend/public/dar03/pot-trap.png differ diff --git a/frontend/public/dar03/stow-net.png b/frontend/public/dar03/stow-net.png new file mode 100644 index 0000000..4e31f9e Binary files /dev/null and b/frontend/public/dar03/stow-net.png differ diff --git a/frontend/src/features/ai-operations/AIModelManagement.tsx b/frontend/src/features/ai-operations/AIModelManagement.tsx index c28ce2b..29a6a82 100644 --- a/frontend/src/features/ai-operations/AIModelManagement.tsx +++ b/frontend/src/features/ai-operations/AIModelManagement.tsx @@ -197,6 +197,149 @@ const GEAR_PROFILES = [ features: [{ k: 'High Speed', v: '>7 kt' }, { k: 'Circularity', v: 'High' }, { k: 'Speed Trans.', v: 'High' }, { k: 'Fleet', v: 'High' }] }, ]; +// ─── DAR-03 5종 어구 구조 비교 (FAO ISSCFG) ────────── + +interface DAR03GearSummary { + no: string; + name: string; + faoCode: string; + mesh: string; + iuuRisk: '매우 높음' | '높음' | '중간' | '낮음~중간'; + aisType: string; + gCodes: string; +} + +const DAR03_GEAR_SUMMARY: DAR03GearSummary[] = [ + { no: '①', name: '저층 트롤', faoCode: 'OTB/TBB', mesh: '≥60mm', iuuRisk: '높음', aisType: '어선 AIS', gCodes: 'G-01, G-03' }, + { no: '②', name: '쌍끌이 트롤', faoCode: 'PTM', mesh: '≥56mm', iuuRisk: '매우 높음', aisType: '어선 AIS 2척', gCodes: 'G-02, G-06' }, + { no: '③', name: '스토우넷', faoCode: 'FYK', mesh: '≥55mm', iuuRisk: '중간', aisType: '어구 AIS 부표', gCodes: 'G-01, G-04, G-05' }, + { no: '④', name: '자망', faoCode: 'GNS/GND', mesh: '55~144mm', iuuRisk: '낮음~중간', aisType: '어구 AIS 부표', gCodes: 'G-03, G-05' }, + { no: '⑤', name: '통발·함정', faoCode: 'FPO', mesh: '탈출구 Ø≥8cm', iuuRisk: '중간', aisType: '어구 AIS 부표', gCodes: 'G-01, G-04' }, +]; + +const DAR03_IUU_INTENT: Record = { + '매우 높음': 'critical', + '높음': 'high', + '중간': 'warning', + '낮음~중간': 'info', +}; + +interface DAR03GearDetail { + no: string; + name: string; + nameEn: string; + image: string; + specs: { k: string; v: string }[]; + gCodes: { code: string; desc: string }[]; +} + +const DAR03_GEAR_DETAILS: DAR03GearDetail[] = [ + { + no: '①', name: '저층 트롤', nameEn: 'Bottom Trawl (OTB/TBB)', image: '/dar03/bottom-trawl.png', + specs: [ + { k: 'FAO 코드', v: 'OTB / TBB' }, + { k: '최소 망목', v: '≥ 60mm (마름모형)' }, + { k: '주요 어종', v: '참조기 · 갈치' }, + { k: '조업 속력', v: '2.5~4.5 knot' }, + { k: '항적 패턴', v: 'U형 회전 · 직선 왕복' }, + { k: 'AIS', v: '어선 AIS (어구 AIS 없음)' }, + ], + gCodes: [ + { code: 'G-01', desc: '허가 해역 외 트롤 → GIS 교차' }, + { code: 'G-03', desc: '미등록 어구 → label=1' }, + ], + }, + { + no: '②', name: '쌍끌이 중층 트롤', nameEn: 'Pair Midwater Trawl (PTM)', image: '/dar03/pair-trawl.png', + specs: [ + { k: 'FAO 코드', v: 'PTM' }, + { k: '최소 망목', v: '≥ 56mm' }, + { k: '주요 어종', v: '전갱이 · 고등어 · 참조기' }, + { k: '선박 간격', v: '300~500m 유지' }, + { k: '조업 속력', v: '2~4 knot (2척 동기화)' }, + { k: 'AIS', v: '2척 어선 AIS 동기화' }, + ], + gCodes: [ + { code: 'G-02', desc: '금어기 내 공조 조업 탐지' }, + { code: 'G-06', desc: '2척 동기화 2시간+ → 공조' }, + ], + }, + { + no: '③', name: '스토우넷 (안강망)', nameEn: 'Stow Net (FYK)', image: '/dar03/stow-net.png', + specs: [ + { k: 'FAO 코드', v: 'FYK' }, + { k: '최소 망목', v: '≥ 55mm (캔버스형)' }, + { k: '주요 어종', v: '참조기 · 갈치 · 실치' }, + { k: '설치 방식', v: '말뚝·닻으로 고정' }, + { k: 'AIS', v: '어구 AIS 부표 부착 의무' }, + { k: '탐지 지표', v: '위치 이탈·출현·소실 주기' }, + ], + gCodes: [ + { code: 'G-01', desc: '위치 편차 200m+ → 구역 외' }, + { code: 'G-04', desc: '신호 30분 내 반복 → MMSI 조작' }, + { code: 'G-05', desc: '이동 500m+ → 인위적 이동' }, + ], + }, + { + no: '④', name: '자망', nameEn: 'Gillnet (GNS/GND)', image: '/dar03/gillnet.png', + specs: [ + { k: 'FAO 코드', v: 'GNS / GND' }, + { k: '최소 망목', v: '55~144mm (어종별 상이)' }, + { k: '참조기 기준', v: '55mm (황해)' }, + { k: '은돔 기준', v: '100mm' }, + { k: 'AIS', v: '어구 AIS 부표 부착' }, + { k: '탐지 지표', v: '미등록 여부·기간 이탈' }, + ], + gCodes: [ + { code: 'G-02', desc: '금어기 내 신호 출현 → label=1' }, + { code: 'G-03', desc: '등록DB 미매칭 → 불법 자망' }, + { code: 'G-05', desc: '조류 보정 후 500m+ → 이동' }, + ], + }, + { + no: '⑤', name: '통발 · 함정', nameEn: 'Pot / Trap (FPO)', image: '/dar03/pot-trap.png', + specs: [ + { k: 'FAO 코드', v: 'FPO' }, + { k: '탈출구 (꽃게)', v: 'Ø ≥ 8cm 또는 높이 33mm' }, + { k: '탈출구 (참게)', v: '측면 30mm + 말단 7cm' }, + { k: '주요 어종', v: '꽃게 · 참게 · 장어' }, + { k: '미성어 방류율', v: '95% 이상 (탈출구 적용 시)' }, + { k: 'AIS', v: '어구 AIS 부표 부착' }, + ], + gCodes: [ + { code: 'G-01', desc: '허가 구역 외 설치 → GIS 교차' }, + { code: 'G-04', desc: '어선-어구 출현·소실 60분+ 불일치' }, + ], + }, +]; + +interface DAR03AisSignal { + no: string; + name: string; + aisType: string; + normal: string[]; + threshold: string[]; + gCodes: string; +} + +const DAR03_AIS_SIGNALS: DAR03AisSignal[] = [ + { no: '①', name: '저층 트롤', aisType: '어선 AIS (Class-A)', + normal: ['2.5~4.5 knot', 'U형 항적 반복'], + threshold: ['5 knot 이상 급가속', '금지 해역 진입'], gCodes: 'G-01, G-03' }, + { no: '②', name: '쌍끌이 트롤', aisType: '어선 AIS 2척', + normal: ['2~4 knot 동기화', '500m 간격 유지'], + threshold: ['동기화 2시간 이상', '동시 AIS 차단 30분+'], gCodes: 'G-02, G-06' }, + { no: '③', name: '스토우넷', aisType: '어구 AIS (Class-B)', + normal: ['위치 완전 고정', '신호 지속 출현'], + threshold: ['위치 편차 200m+', '출현·소실 30분 이내 반복'], gCodes: 'G-01, G-04, G-05' }, + { no: '④', name: '자망', aisType: '어구 AIS (Class-B)', + normal: ['위치 반고정', '조류에 따라 완만이동'], + threshold: ['등록 DB 미매칭', '금어기 내 신호 출현'], gCodes: 'G-02, G-03' }, + { no: '⑤', name: '통발', aisType: '어구 AIS (Class-B)', + normal: ['위치 완전 고정', '신호 지속'], + threshold: ['어선 접근·이탈 불일치 60분+', '구역 외 위치'], gCodes: 'G-01, G-04' }, +]; + // ─── ⑦ 7대 탐지 엔진 (불법조업 감시 알고리즘 v4.0) ─── interface DetectionEngine { @@ -601,6 +744,166 @@ export function AIModelManagement() { ))} + + {/* ── DAR-03 5종 어구 구조 비교 ── */} +
+ +
+
DAR-03 · 5종 어구 구조 비교 (FAO ISSCFG)
+
+ 불법 어망·어구 탐지 참고자료 — FAO 국제 어구 분류 기준 · Wang et al.(2022) 논문 기반 · G-01~G-06 탐지 코드 연계 +
+
+ 참고자료 +
+ + {/* 5종 어구 특성 비교 요약 */} + + + + + 5종 어구 특성 비교 요약 + + + + + + + + + + + + + + + + {DAR03_GEAR_SUMMARY.map((g) => ( + + + + + + + + + ))} + +
어구FAO 코드최소 망목IUU 위험도AIS 부착주요 G코드
+ {g.no} + {g.name} + {g.faoCode}{g.mesh} + {g.iuuRisk} + {g.aisType}{g.gCodes}
+
+
+ + {/* 어구별 구조 도식 */} + + + + + 어구별 구조 도식 비교 + +

+ ※ FAO 어구 분류 기준 및 Wang et al.(2022) 논문 기반 개념도. 임계값은 사업 착수 후 해양경찰청 실무 데이터 분석으로 최종 확정. +

+
+ +
+ {DAR03_GEAR_DETAILS.map((g) => ( + + +
+ {g.no} +
+
{g.name}
+
{g.nameEn}
+
+
+
+ {g.nameEn} +
+
+ {g.specs.map((s) => ( +
+ {s.k} + {s.v} +
+ ))} +
+
+
G코드 연계
+
+ {g.gCodes.map((gc) => ( +
+ {gc.code} + {gc.desc} +
+ ))} +
+
+
+
+ ))} +
+
+
+ + {/* AIS 신호 특성 및 이상 판정 기준 */} + + + + + 어구별 AIS 신호 특성 및 이상 판정 기준 + + + + + + + + + + + + + + + {DAR03_AIS_SIGNALS.map((s) => ( + + + + + + + + ))} + +
어구AIS 유형정상 신호 특성이상 탐지 임계값G코드
+ {s.no} + {s.name} + {s.aisType} +
    + {s.normal.map((n) => ( +
  • + + {n} +
  • + ))} +
+
+
    + {s.threshold.map((th) => ( +
  • + + {th} +
  • + ))} +
+
{s.gCodes}
+
+
)}