내 세션 올리기
Polar Sensor Logger *_RR.txt (필수) · Samsung Health 내보내기 .zip · 세션 기록 기록시간.txt 를 한꺼번에 끌어다 놓으세요.
파일은 브라우저 안에서만 처리되고 서버로 전송되지 않습니다. 브라우저 처리에는 ECG 정렬 단계가 없어 박동 시각은 RR 누적합 기준입니다. 처음이면 아래 새 세션 데이터 넣는 법을 먼저 보세요.
심박 — 기기 통합 타임라인 (KST)
H10 (ECG R-R 기준)Watch7Fit3
사우나냉탕외기욕
HRV — RMSSD · SDNN (H10, 60초 창, 유효 커버리지 ≥ 80% 창만)
아래 막대 = 창별 H10 유효 박동 커버리지(초록 ≥0.8 사용 · 빨강 <0.8 제외). 손목 기기는 운동 중 박동간격(IBI)을 내보내지 않아 HRV는 H10만 산출합니다.
라운드 · 구간 요약
손목 vs H10 오차 (이 세션)
MAE = 손목 HR과 같은 시각 H10 HR의 평균 절대오차(bpm). 보정 = 기기 지연(냉탕 별도) + 선형(Fit3). 계수 v1.1은 2026-10-29·11-03 2세션 실측으로 추정 — 1인 데이터, 일반화 주장 아님.
정규화 규칙 (이 뷰어가 하는 일)
- 시간대 통일 — Samsung Health 내보내기 시각은 UTC → +9h로 KST 변환. Polar 파일 시각은 폰 로컬(KST) 그대로.
- H10 박동 시각 복원 — Polar의 'Phone timestamp'는 블루투스 수신 시각이라 묶음 수신 시 최대 수 분 밀림(11/3 실측 112초). 박동 시각 = 파일 첫 박동 + RR 누적합으로 다시 계산.
- RR 품질 판정 — 300~2000ms 이고 주변 5박 중앙값 대비 ±20% 이내만 유효(Malik 계열). 무효 박동은 HR·HRV 계산에서 제외.
- 기준 HR — 유효 RR의 순간심박을 1초 격자 5초 이동평균. 손목 HR 비교의 정답.
- HRV — 60초 창, 연속 유효 박동 쌍으로 RMSSD, 유효 박동으로 SDNN. 유효 커버리지 0.8 미만 창은 표시하지 않음(결측을 보간한 HRV는 측정값이 아님).
- 손목 보정 — HR_보정(t) = a × HR_기기(t − lag) + b. 냉탕 구간은 별도 lag. 냉탕은 보정 후에도 오차가 커서 '신뢰 낮음'으로 표시.
- 구간 라벨 — 세션 기록지(라운드별 사우나·냉탕·외기욕 종료 시각)로 모든 기기 샘플에 같은 라벨 부여.
새 세션 데이터 넣는 법 (사용법)
A. 화면에서 바로 보기 (누구나, 1회성)
- 측정 — 가슴에 Polar H10(전극 적셔서), 오른손목 Galaxy Watch, 왼손목 Galaxy Fit. 폰의 Polar Sensor Logger에서 H10을 연결하고 RR·ECG 기록 시작. 워치는 '기타 운동'으로 운동 시작(걷기는 자동 일시정지됨). 자세한 수칙은 납품 문서 ⑥ 가드레일·가이드라인 참고.
- 기록지 — 메모장에 아래 형식으로 라운드별 종료 시각을 적어
기록시간.txt로 저장(형식이 다르면 구간 라벨이 안 붙음).1차 시작 10:10 사우나 온도 85도 종료 10:26 콜드플런지 16도 종료 10:28 외기욕 종료 10:38 2차 시작 10:38 …
- H10 파일 꺼내기 — Polar Sensor Logger에 저장된 파일 중
Polar_H10_…_RR.txt(필수)를 폰에서 PC로 옮긴다. 세션 중 끊겨 파일이 여러 개면 모두 옮긴다. - 워치 데이터 꺼내기(선택) — Samsung Health 앱 › 설정 › 개인 데이터 다운로드로 받은
.zip을 압축 풀지 말고 그대로 준비. 측정 시간대(±30분)의 Watch·Fit 운동기록만 자동으로 읽는다. - 올리기 — 위쪽 [+ 내 파일] → RR.txt 전부 + 기록시간.txt + zip을 한꺼번에 끌어다 놓기. 새 탭 'YYYY-MM-DD (업로드)'가 생긴다.
- 확인 — 라운드 표의 H10 커버가 빨간 구간(80% 미만)은 HRV를 믿지 말 것. 손목 vs H10 오차표에서 냉탕 값은 원래 크다(신뢰 낮음).
업로드 세션은 이 브라우저 화면에만 있고 새로고침하면 사라진다. 다른 사람과 공유하려면 B 방법으로 등록.
B. 데모 세션으로 영구 등록 (개발자)
- 원본을 한 폴더에 모은다:
h10/(RR·ECG·ACC·HR txt),기록시간.txt,samsung/(Samsung zip 압축 해제본). - 정리:
SESS_RAW=<폴더> SESS_OUT=<정리본> SESS_DAY=YYYY-MM-DD python organize.py→ ECG 정렬까지 포함한 정리본 CSV 생성. - 분석:
analyze.py의SESS목록에 새 세션 정리본 경로를 추가하고ANALYZE_SESS=…,YYYY-MM-DD python analyze.py실행(보정 계수 재학습·교차검증). - 웹 데이터:
python export_web.py→data/sessions.json갱신. - 배포:
npx wrangler pages deploy 11_web_mvp --project-name thw-sauna-viewer --branch main.
실명·계정 정보가 들어간 파일은 올리지 말 것(가명 S-xx 사용). 자세한 입출력 규격은 납품 문서 ② THW 엔진 기술·사용 설명서.