제4장
모든 상호운용성의 기초. JSON 스키마 기반 표준 데이터 형식으로 전 세계 핵융합 시설의 플라즈마 데이터, 진단, 에너지 출력을 통일합니다.
상상해 보세요. KSTAR에서 "온도 10 keV"라고 보고하는 동안, JET은 "1억 1천 6백만 °C"라고 하고, DIII-D는 "100,000,000 K"라고 합니다. 모두 같은 값이지만 단위가 다릅니다. 밀도의 경우는 더 복잡합니다: 10²⁰/m³, 10¹⁴/cm³, 또는 그냥 "1.0"에 주석으로 단위를 적어놓습니다.
시간 표기도 문제입니다. KSTAR는 "샷 번호 23045", JET은 "펄스 #94701", ITER는 "방전 ID D-001"을 사용합니다. 타임스탬프는 로컬 시간인가요? UTC인가요? Unix epoch인가요?
WIA-FUSION 1단계는 JSON Schema를 사용하여 모든 핵융합 데이터를 표준화합니다. JSON은 다음과 같은 이유로 선택되었습니다:
플라즈마 상태는 특정 시점의 플라즈마 조건을 완전히 설명합니다:
{
"$schema": "https://wialive.smilestory.ai/schemas/fusion/plasma-state-v1.0.0.json",
"shot_id": "KSTAR-2023-12-15-24501",
"timestamp": "2023-12-15T09:23:45.250Z",
"facility": "KSTAR",
"core_parameters": {
"temperature_keV": {
"ion": 8.6,
"electron": 7.9,
"measurement_location": "r/a = 0.3",
"diagnostic": "Thomson scattering"
},
"density_m3": {
"value": 0.85,
"unit": "1e20/m3",
"line_averaged": true
},
"confinement_time_s": 2.1,
"triple_product": {
"value": 34.3,
"unit": "keV·s·1e20/m3"
}
},
"performance": {
"q_factor": 0,
"fusion_power_mw": 0,
"plasma_current_ma": 1.8,
"beta_percent": 3.2,
"beta_n": 2.8,
"h_factor": 1.05
},
"geometry": {
"major_radius_m": 1.8,
"minor_radius_m": 0.5,
"elongation": 1.9,
"triangularity": 0.6,
"safety_factor_95": 4.2
},
"stability": {
"disruption_probability": 0.08,
"elm_frequency_hz": 50,
"mhd_modes": [
{"m": 2, "n": 1, "amplitude": 0.02}
]
}
}
모든 진단 측정에는 메타데이터가 포함되어야 합니다:
{
"diagnostic": {
"name": "Thomson Scattering",
"type": "temperature_density",
"location": "KSTAR_TS_CORE",
"calibration_date": "2023-12-01",
"calibration_valid_until": "2024-06-01",
"sampling_rate_hz": 100,
"spatial_resolution_cm": 2.0,
"temporal_resolution_ms": 10
},
"measurements": [
{
"timestamp": "2023-12-15T09:23:45.250Z",
"temperature_keV": 8.6,
"temperature_error_keV": 0.3,
"density_1e20m3": 0.85,
"density_error_1e20m3": 0.05,
"quality_flag": "GOOD",
"radial_position_m": 0.54
}
],
"quality_control": {
"signal_to_noise_ratio": 45.2,
"saturation_detected": false,
"outliers_removed": 2,
"data_gaps_ms": []
}
}
국가핵융합연구소(KFE)는 2023년부터 KSTAR의 모든 데이터를 WIA-FUSION 형식으로 변환하고 있습니다. 이는 50년치 아카이브 데이터(1995-2023, 약 150,000 샷)와 실시간 데이터 스트림을 포함합니다.
| 데이터 타입 | 레거시 형식 | WIA-FUSION 형식 | 변환 상태 |
|---|---|---|---|
| 플라즈마 상태 | Custom binary | plasma-state.json | ✅ 완료 (2023) |
| Thomson 산란 | MATLAB .mat | diagnostic-ts.json | ✅ 완료 (2023) |
| ECE (전자 사이클로트론) | HDF5 custom | diagnostic-ece.json | 🔄 진행 중 (80%) |
| Magnetics | MDSplus tree | diagnostic-mag.json | 🔄 진행 중 (60%) |
| Bolometry | CSV + metadata.txt | diagnostic-bol.json | ✅ 완료 (2024) |
| NBI (중성빔 주입) | LabVIEW binary | heating-nbi.json | 📅 계획 (2024 Q3) |
WIA-FUSION은 모든 물리량에 대해 명확한 단위를 정의합니다:
| 물리량 | 표준 단위 | 표기 | 이유 |
|---|---|---|---|
| 온도 | kiloelectronvolt | keV | 플라즈마 물리학 표준 (1 keV = 1.16×10⁷ K) |
| 밀도 | 10²⁰ particles/m³ | 1e20/m3 | 핵융합 관련 밀도 범위에 적합 |
| 시간 | ISO 8601 UTC | 2023-12-15T09:23:45.250Z | 국제 표준, 타임존 명확 |
| 전류 | Megaampere | MA | 플라즈마 전류 스케일 |
| 자기장 | Tesla | T | SI 표준 |
| 에너지 | Megawatt | MW | 발전소 스케일 |
| 길이 | meter | m | SI 표준 |
WIA-FUSION SDK는 자동 단위 변환을 제공합니다:
// TypeScript 예시
import { FusionUnits } from '@wia/fusion-sdk';
// 온도 변환
const tempKeV = 10;
const tempKelvin = FusionUnits.keV_to_Kelvin(tempKeV);
// 결과: 116,000,000 K
const tempCelsius = FusionUnits.keV_to_Celsius(tempKeV);
// 결과: 115,999,726.85 °C
// 밀도 변환
const density1e20 = 1.0;
const densityPerCm3 = FusionUnits.m3_to_cm3(density1e20);
// 결과: 1.0×10¹⁴ /cm³
// KSTAR 레거시 형식에서 WIA-FUSION으로 변환
const legacy = loadKSTARLegacyData("shot_23045.bin");
const standard = FusionUnits.convertToWIAFusion(legacy, {
facility: "KSTAR",
temperature_unit: "eV", // 입력이 eV임을 명시
density_unit: "1e19/m3" // 입력이 10¹⁹/m³임을 명시
});
// 자동으로 keV와 10²⁰/m³로 변환됨
모든 데이터는 수락 전에 JSON Schema에 대해 검증되어야 합니다. KSTAR는 실시간 데이터 파이프라인에서 이를 구현했습니다:
과학적 재현성을 위해 모든 데이터는 풍부한 메타데이터를 포함해야 합니다:
| 메타데이터 카테고리 | 필수 필드 | 예시 |
|---|---|---|
| 원천 | facility, diagnostic, operator | "KSTAR", "Thomson_Scattering_Core", "Dr. Kim" |
| 시간 | timestamp, shot_id, duration | "2023-12-15T09:23:45.250Z", "KSTAR-20231215-24501", 102.3s |
| 교정 | calibration_date, valid_until | "2023-12-01", "2024-06-01" |
| 품질 | quality_flag, SNR, uncertainty | "GOOD", 45.2, ±0.3 keV |
| 처리 | processing_pipeline, version | "KSTAR-TS-Pipeline", "v2.4.1" |
| 표준 | wia_fusion_version, schema_url | "1.0.0", "https://wialive.smilestory.ai/schemas/..." |
한국의 대학들은 WIA-FUSION 데이터 형식을 활용하여 고급 분석을 수행하고 있습니다:
ITER는 2025년부터 WIA-FUSION 형식을 공식 데이터 표준으로 채택할 예정입니다. 이는 한국을 포함한 모든 참여국이 동일한 형식으로 데이터를 제출하고 교환할 것임을 의미합니다.
| ITER 서브시스템 | 책임 국가 | WIA-FUSION 준비도 | 예상 데이터량/일 |
|---|---|---|---|
| 진공 용기 | 한국, 유럽 | ✅ Ready (2024) | 50 GB |
| 자석 시스템 | 유럽, 일본 | 🔄 In Progress | 200 GB |
| 가열 시스템 | 중국, 인도 | 🔄 In Progress | 100 GB |
| 진단 | 전체 참여국 | 🔄 In Progress | 500 GB |
| 제어 시스템 | 미국, 러시아 | 📅 Planned (2025) | 1 TB |
ITER가 완전히 가동되면 하루에 약 2 TB의 WIA-FUSION 형식 데이터를 생성할 것으로 예상됩니다. 이 모든 데이터는 35개 참여국에서 동일한 형식으로 접근하고 분석할 수 있습니다.
데이터를 통한 인류의 이익
WIA-FUSION 데이터 표준은 弘益人間 정신을 다음과 같이 실천합니다:
제5장: 2단계 - API 인터페이스
표준화된 데이터가 준비되었으니, 이제 어떻게 접근할까요? 제5장에서는 RESTful API, WebSocket 스트리밍, 공식 SDK를 통해 핵융합 데이터에 프로그래밍 방식으로 접근하는 방법을 배웁니다. KSTAR가 어떻게 실시간 API를 구현했는지, 그리고 전 세계 연구자들이 이를 어떻게 사용하는지 살펴봅니다.