Руководство исследователя

Apple Watch + Apple Health:
полное руководство для исследователя

От нативного экспорта до Python-пайплайнов — как работать с физиологическими данными на любом уровне подготовки.

2026-03-25 12 разделов ~20 мин чтения
Листать
Раздел 1

Что такое Apple Health и как это устроено

Apple Watch HealthKit Store Ваши данные

Прежде чем работать с данными, важно понять архитектуру системы. Без этого понимания многие вещи будут казаться странными — например, почему данные иногда дублируются, почему пульс фиксируется не каждую секунду или почему файл экспорта весит полгигабайта.

Apple Health — это не просто приложение. Это централизованная база данных физиологической информации, развёрнутая локально на вашем iPhone. Техническое название — HealthKit. Приложение Health, которое вы видите на экране, является лишь пользовательским интерфейсом к этой базе.

Ключевой принцип: данные хранятся на устройстве, а не на серверах Apple. Это означает, что у Apple нет облачного API, через который исследователь мог бы удалённо подключиться и скачать чьи-то данные. Весь доступ происходит только через iPhone конкретного пользователя, с его явного разрешения. При включённой двухфакторной аутентификации даже сама Apple не имеет ключей для расшифровки данных — они защищены сквозным шифрованием.

Как данные попадают в базу: любое устройство или приложение, имеющее разрешение пользователя, может записывать данные в HealthKit. Apple Watch делает это автоматически и непрерывно. Garmin, Oura, Polar и другие устройства — через свои приложения. Пользователь также может вводить данные вручную. Каждая запись содержит четыре обязательных поля: тип данных, числовое значение, единицу измерения и источник — устройство или приложение, которое создало запись.

Модель хранения данных важна для понимания того, что происходит при наличии нескольких устройств. Apple Health не усредняет и не смешивает данные от разных источников — она хранит все записи изолированно. Когда вы запрашиваете суточный итог (например, количество шагов за день), система применяет иерархию приоритетов и выбирает значение от источника с наибольшим приоритетом. По умолчанию Apple Watch стоит выше iPhone, iPhone выше сторонних приложений. Пользователь может изменить этот порядок вручную в настройках раздела «Источники данных».

Это имеет практическое следствие для исследователя: если участник носит одновременно Apple Watch и Garmin, шаги будут записаны дважды, но в суммарную статистику попадут только от приоритетного источника. В сыром экспорте, однако, будут видны обе записи — и это нужно учитывать при очистке данных.

Раздел 2

Что на самом деле хранится внутри — природа данных

Это один из самых важных разделов для исследователя. Разница между тем, что вы ожидаете получить, и тем, что реально хранится в Apple Health, может полностью изменить дизайн вашего исследования.

Apple Health не хранит сырые сигналы датчиков.

Apple Watch считывает фотоплетизмограмму (PPG) — оптический сигнал отражения зелёного света от кровеносных сосудов — и обрабатывает его с помощью встроенных алгоритмов машинного обучения. В базу данных попадает уже результат: значение пульса в ударах в минуту, а не сам волновой сигнал. То же самое происходит с акселерометром: вместо исходного потока значений ускорения по трём осям в HealthKit записывается количество шагов или факт тренировки.

Для исследователя это означает следующее: вы работаете с обработанными показателями, а не с первичными физиологическими сигналами. Это не делает данные бесполезными — они отлично подходят для трендового анализа, корреляций, наблюдательных исследований и работы с большими выборками. Но если ваша задача — анализировать качество самого сигнала или получать R-R интервалы с миллисекундной точностью, стандартных возможностей HealthKit будет недостаточно.

Что конкретно хранится в HealthKit
Частота сердечных сокращений — HeartRate
Значения в уд/мин с точными временными метками. Вне тренировки — раз в 5–10 мин, во время тренировки — непрерывно (~раз в 5 сек).
Вариабельность сердечного ритма — HeartRateVariabilitySDNN
Значение SDNN в миллисекундах. Собирается преимущественно ночью, в периоды расслабления. Разреженные данные — 3–5 точек в сутки.
Насыщение крови кислородом — OxygenSaturation
Значения SpO2 в процентах. Снимаются в фоне преимущественно ночью, на Series 6 и новее.
Температура запястья — AppleSleepingWristTemperature
Доступна с Series 8 и новее, измеряется только во время сна.
Фазы сна — SleepAnalysis
Категориальные данные: Core, Deep, REM, Awake. Точность ~60–70% по сравнению с полисомнографией.
ЭКГ — Electrocardiogram
Одноканальная запись (отведение I), 30 секунд, только при ручном снятии. Единственный способ получить близкое к сырому кардиосигналу.
Шаги, дистанция, калории — StepCount, DistanceWalkingRunning, ActiveEnergyBurned
Агрегированные данные физической активности.
VO2 max — VO2Max
Расчётный показатель кардиовыносливости на основе данных тренировок.
Тренировки — HKWorkout
Структурированные записи тренировок с GPS-треками, зонами пульса, калориями.

Каждая запись в базе сопровождается метаданными: источник (название устройства или приложения), идентификатор устройства, временные метки начала и конца замера. Поле sourceName позволяет впоследствии фильтровать данные по конкретному устройству — это важный инструмент очистки.

Раздел 3

Совместимые устройства — кто и что пишет в базу

Здесь кроется одна из ключевых ценностей Apple Health для исследователя: это открытая экосистема-агрегатор. Если устройство умеет записывать данные в HealthKit, все описанные в этой инструкции методы работают для него в полном объёме.

Apple Watch Полная
Пульс HRV Сон SpO2
Garmin Хорошая
ЧСС HRV Тренировки
Coros Полная
Пульс Сон SpO2
Oura Ring Полная
Сон HRV Температура
Whoop Хорошая
Нагрузка HRV Восстановление
Polar Хорошая
ЧСС Нагрузка Сон
Withings Полная
ЭКГ SpO2 Давление
Fitbit Частичная
Шаги ЧСС
Samsung / Pixel Нет
Android
💡 Как проверить источники данных

Откройте приложение Здоровье → выберите любую метрику (например, Пульс) → прокрутите вниз до раздела «Источники данных и доступ». Там перечислены все устройства и приложения, пишущие данные этого типа. Для чистоты эксперимента определите приоритетный источник и убедитесь, что он стоит первым в списке.

Уровень 1 Без кода
Раздел 4

Нативный экспорт (XML)

Бесплатно · Полный архив · Подходит для однократного глубокого извлечения всей истории

Самый простой способ получить все данные — нативный экспорт прямо из приложения Здоровье. Никаких сторонних инструментов, никаких разрешений — просто несколько нажатий.

  • 1
    Откройте приложение Здоровье на iPhone.
  • 2
    Нажмите на свой аватар или инициалы в правом верхнем углу.
  • 3
    Прокрутите вниз до пункта «Экспортировать все данные о здоровье».
  • 4
    Подтвердите действие. Формирование архива займёт от нескольких минут до получаса.
  • 5
    Сохраните файл export.zip через AirDrop, iCloud Drive или отправьте по почте.

Что внутри архива: основной файл — export.xml. Каждая запись выглядит так:

<Record
  type="HKQuantityTypeIdentifierHeartRate"
  sourceName="Apple Watch"
  unit="count/min"
  startDate="2025-03-15 08:14:22 +0300"
  value="72"/>

Если данные пришли с Coros или Garmin — поле sourceName будет содержать его название. Структура идентична.

⚠️ Размер файла: от 100 МБ до 1–2 ГБ за несколько лет. Excel такой файл не откроет. Нужен конвертер или код.

Помимо export.xml в архиве: GPX-файлы с GPS-треками тренировок и папка electrocardiograms с данными ЭКГ.

Что делать с XML без кода

Онлайн-сервис applehealthdata.com — файл обрабатывается локально в браузере, данные никуда не передаются. На выходе — набор CSV-файлов, разбитых по типам данных: отдельный файл для пульса, шагов, сна и так далее.

.zip export
Уровень 2 Без кода
Раздел 5

Приложения-экспортёры

Практичный путь для большинства задач. Работают одинаково для данных из любого источника, синхронизированного с Apple Health.

HealthExport

Выбор конкретных метрик и интервала агрегации. Данные с детализацией до минуты. Удобно для выборочного экспорта без лишнего шума.

CSV Агрегация Фильтры
QS Access

Бесплатный минималистичный инструмент. Выбираете показатели → нажимаете «Create Table» → получаете CSV. Нулевой порог входа.

CSV Бесплатно Просто
Health Data Export Tool

Поддерживает Walking Asymmetry, Six-Minute Walk Test и другие новые метрики. Умеет создавать PDF-отчёты для врача.

CSV PDF Новые метрики

Структура итоговой таблицы — одинакова для всех приложений выше:

Колонка Что содержит
StartDate Точная временная метка начала замера
EndDate Время окончания замера
Value Числовое значение показателя
Unit Единица измерения — count/min, ms, %, kcal
Source Источник данных: Apple Watch, COROS PACE 3, Garmin Connect…
Device Идентификатор конкретного устройства

Колонка Source позволяет мгновенно отфильтровать данные по устройству, если в базе несколько источников.

Уровень 3 Python
Раздел 6

Python и программная обработка

Полный контроль над каждым шагом. Для тех, кто хочет парсить, чистить, строить корреляции, применять статистические модели.

  • 1
    Получите export.xml через нативный экспорт (Уровень 1). Распакуйте архив.
  • 2
    Установите библиотеки:
pip install pandas lxml matplotlib seaborn
  • 3
    Парсинг XML в DataFrame:
import xml.etree.ElementTree as ET
import pandas as pd

tree = ET.parse('export.xml')
root = tree.getroot()

records = []
for record in root.findall('.//Record'):
    records.append({
        'type':       record.get('type'),
        'value':      record.get('value'),
        'unit':       record.get('unit'),
        'startDate':  record.get('startDate'),
        'endDate':    record.get('endDate'),
        'sourceName': record.get('sourceName'),
        'device':     record.get('device'),
    })

df = pd.DataFrame(records)
  • 4
    Извлечение конкретной метрики и фильтр по устройству:
hr_df = df[df['type'] == 'HKQuantityTypeIdentifierHeartRate'].copy()
hr_df['value']     = pd.to_numeric(hr_df['value'])
hr_df['startDate'] = pd.to_datetime(hr_df['startDate'])
hr_df = hr_df.sort_values('startDate')

# Фильтр по конкретному устройству:
hr_df = hr_df[hr_df['sourceName'] == 'Apple Watch']
# или:
hr_df = hr_df[hr_df['sourceName'] == 'COROS PACE 3']
  • 5
    Визуализация временного ряда:
import matplotlib.pyplot as plt

plt.figure(figsize=(14, 4))
plt.plot(hr_df['startDate'], hr_df['value'], alpha=0.4, linewidth=0.5)
plt.title('Heart Rate Time Series — Apple Watch')
plt.xlabel('Date')
plt.ylabel('BPM')
plt.tight_layout()
plt.show()
Основные идентификаторы типов данных в HealthKit
HKQuantityTypeIdentifierHeartRate               # пульс (count/min)
HKQuantityTypeIdentifierHeartRateVariabilitySDNN # HRV (ms)
HKQuantityTypeIdentifierStepCount               # шаги
HKQuantityTypeIdentifierVO2Max                  # VO2 max (мл/кг/мин)
HKQuantityTypeIdentifierOxygenSaturation        # SpO2 (%)
HKQuantityTypeIdentifierRespiratoryRate         # частота дыхания
HKCategoryTypeIdentifierSleepAnalysis           # сон (категориальный)
HKQuantityTypeIdentifierRestingHeartRate        # пульс в покое
Анализ HRV
import heartpy as hp

working_data, measures = hp.process(data, sample_rate=1.0)
print('SDNN:',  measures['sdnn'])
print('RMSSD:', measures['rmssd'])
Корреляционный анализ
combined = pd.merge(hr_daily,  hrv_daily,   on='date')
combined = pd.merge(combined, sleep_daily, on='date')
print(combined.corr())

Готовые библиотеки

apple-health-parser
PyPI — извлечение из ZIP-архива, валидация структуры, генерация графиков. Минимум кода для старта.
apple-health-extractor
Изолированное извлечение конкретных типов данных. Удобно, если нужна одна метрика без полного парсинга всего файла.
qs-ledger
Набор Jupyter Notebooks для комплексного анализа данных о здоровье. Включает готовые пайплайны для Apple Health, Garmin, Oura.
Уровень 4 Специальное ПО
Раздел 7

Сырые данные датчиков в реальном времени

Если задача — акселерометр, гироскоп, магнитометр с частотой 50–100 Гц. HealthKit здесь не поможет.

Apple Watch не сохраняет высокочастотные данные датчиков в долгосрочную базу — по соображениям энергопотребления и памяти. Для таких задач существуют специальные приложения.

Sensor Logger
  • Запускается одновременно на iPhone и Apple Watch
  • Акселерометр, гироскоп, барометр, магнитометр, GPS, пульс из HealthKit
  • Стриминг через HTTP и MQTT в реальном времени по локальной сети
  • Экспорт: ZIP CSV, JSON, Excel, KML
  • Подходит для биомеханики и кинематики
SensorLog
  • Альтернативный инструмент
  • Транслирует данные акселерометра с Apple Watch на компьютер по HTTP/TCP
  • Колонки AccelerometerX/Y/Z с временными метками
  • Подходит для анализа двигательных паттернов
Важное ограничение

Фоновая запись высокочастотных данных на Apple Watch ограничена системой iOS/watchOS. Длительные сессии (более 1–2 часов) требуют, чтобы экран оставался активным или приложение работало в специальном режиме Workout. Учитывайте это при планировании протокола.

Раздел 8

Форматы данных и что с ними делать

Один и тот же файл здоровья может прийти в разных форматах — каждый требует своего подхода.

XML
Самый полный, наименее удобный. Содержит всё. Excel не откроет из-за размера.
applehealthdata.com · applehealth2csv · Python
CSV
Универсальный рабочий формат. Excel, Google Sheets, pandas, R. Внимание: метки времени — строки, нужно преобразование.
Excel · pandas · R · Google Sheets
JSON
Для программной обработки. Каждая запись — объект с явными полями. Хорошо для пайплайнов и API.
Python · Node.js · REST API
GPX
GPS-треки тренировок. Маршрут с координатами и временными метками.
Google Maps · Komoot · Runalyze · GoldenCheetah
FIT
Бинарный формат Garmin/Coros. ЧСС посекундно, GPS, темп, мощность. Детализация выше, чем в Apple Health.
GoldenCheetah · Runalyze · fitfileviewer.com
Раздел 9

Обработка данных с помощью ИИ-моделей

CSV-файлы из Apple Health хорошо поддаются анализу с помощью языковых моделей. Это работает, и работает хорошо.

Экспорт CSV
Загрузка в ИИ
Вопрос
Анализ
Инсайт
Что умеют делать ИИ-модели
  • 1
    Анализировать корреляции — связь между HRV и качеством сна, между активностью и пульсом покоя.
  • 2
    Находить паттерны и аномалии — скачки пульса, изменения сна после нагрузок, недельные ритмы.
  • 3
    Генерировать статистику — средние, медианы, стандартные отклонения, тренды за период.
  • 4
    Помогать с интерпретацией — объяснять показатели в контексте физиологии.
  • 5
    Писать и отлаживать код — создавать Python-скрипты, если вы не программист.
Как подготовить данные
  • 1
    Не загружайте XML напрямую — конвертируйте в CSV сначала.
  • 2
    Ограничьте период — для анализа в чате достаточно 30–90 дней.
  • 3
    Выбирайте конкретные метрики — не весь архив, только нужные типы данных.
  • 4
    Проверьте конфиденциальность — удалите личные идентификаторы перед загрузкой данных третьих лиц.

Инструменты: Health2AI и AI Health Export конвертируют экспорт в форматы, оптимизированные для загрузки в ChatGPT, Claude или другие языковые модели.

Локальная работа без передачи данных в облако

Репозиторий apple-health на GitHub поддерживает интеграцию с локальными моделями через Ollama. Важно для исследований, где данные участников не должны покидать защищённый контур.

Пример рабочего процесса
  • 1
    Экспортируйте через Health Auto Export в CSV за последние 3 месяца: HeartRate, HRV, SleepAnalysis, StepCount.
  • 2
    Загрузите CSV в диалог с Claude или GPT-4.
  • 3
    Задайте конкретный вопрос: «Покажи корреляцию между ночным HRV и шагами за предыдущий день» или «Найди дни, когда пульс в покое был значительно выше среднего».
  • 4
    Получите анализ и интерпретацию.

⚠️ ИИ-анализ — это разведочный анализ (exploratory analysis), не финальные выводы исследования. Результаты требуют статистического подтверждения.

Раздел 10

Очистка и подготовка данных

Типичные проблемы и конкретные решения для каждой из них.

Дублирование данныхДва трекера → две записи с разными источниками, но близкими метками времени
Определите приоритетный источник и фильтруйте:
df = df[df['sourceName'] == 'Apple Watch']
Временные разрывы в пульсеЧСС фиксируется раз в 5–10 минут вне тренировки — в дневном ряду будут пропуски
Это нормально. Если нужен непрерывный ряд — применяйте линейную интерполяцию явно, помечая заполненные значения отдельным флагом.
Часовые поясаМетки хранятся со смещением UTC; у путешественников возможны сдвиги
pd.to_datetime(df['startDate'], utc=True).dt.tz_convert('Europe/Moscow')
Выбросы и артефактыПульс выше 220 или ниже 30 — почти наверняка артефакт (плохой контакт)
hr_df = hr_df[(hr_df['value'] >= 30) & (hr_df['value'] <= 220)]
Разреженность HRVApple Health записывает SDNN только ночью — 3–5 точек в сутки
Для трендового анализа достаточно. Для минутного мониторинга ВНС — нагрудный датчик Polar H10.
Провенанс данныхЗа несколько лет пользователь мог сменить устройство — алгоритмы новых поколений дают систематически другие значения
Документируйте модель устройства и версию watchOS на момент исследования. Учитывайте возможный сдвиг на границе смены.
Раздел 11

Честно об ограничениях

Что Apple не отдаёт и почему это важно знать до начала исследования.

  • Нет доступа к сырому PPG-сигналу. Apple Watch измеряет фотоплетизмограмму, но отдаёт только конечный результат — значение пульса в bpm.
  • Нет непрерывных R-R интервалов в фоновом режиме. Частично решается через ЭКГ (30 сек вручную) или приложения HRV Logger и Heart Plot. Для полноценного HRV в частотной области — Polar H10.
  • Нет серверного API. Данные нужно вытолкнуть с устройства участника вручную или через приложение-автоэкспортёр.
  • «Чёрный ящик» алгоритмов. Apple не раскрывает детали расчёта HRV, фаз сна, VO2 max. Алгоритмы меняются с обновлениями watchOS — документируйте версию.

Точность показателей: Пульс в покое ±5 bpm у 89% измерений · ФП: специфичность 0.91 · Шаги при ходьбе: погрешность 2–3% · Калории: погрешность до 30–50% · Фазы сна: 60–70% vs полисомнография · SpO2: ±3–4%

Подходит хорошо
  • Наблюдательные исследования
  • Трендовый анализ
  • Популяционные исследования
  • Лонгитюдный мониторинг
  • Пилотные проекты
  • Скрининг сердечно-сосудистых рисков
Нужны доп. инструменты
  • Клиническая диагностика
  • Фармакологические испытания
  • Высокоточный HRV в частотной области
  • Нейрофизиология
  • Спортивная наука на элитном уровне

О Garmin — для тех, кому важна открытость. Garmin предоставляет более открытый доступ через Garmin Health API и Connect IQ. Для исследований, где критичен доступ к первичным данным, Garmin нередко удобнее. Apple выигрывает в удобстве для пользователя, но данные остаются в «закрытом саду» — это сознательная позиция платформы.

Раздел 12

Сравнительная таблица инструментов

Задача Инструмент Формат Уровень ИИ-анализ
Быстро получить CSV без кода Health Auto Export / QS Access CSV Начальный ✓ Да
Полный исторический архив Нативный экспорт + онлайн-конвертер XML → CSV Начальный ⏱ После конвертации
Автоматический ежедневный поток Health Auto Export Premium CSV / JSON Средний ✓ Да
Программная обработка, корреляции Нативный экспорт + Python (pandas) XML → DataFrame Продвинутый ✓ Полный контроль
HRV-анализ в частотной области Python + heartpy + Polar H10 CSV → обработка Исследовательский ~ Частично
Сырые данные акселерометра Sensor Logger / SensorLog CSV / JSON / HTTP Исследовательский ⏱ После экспорта
Детальные данные тренировок FIT-файлы Garmin/Coros + GoldenCheetah FIT → CSV Средний ⏱ После конвертации
Раздел 13

Чек-лист для запуска исследования

Выполнено: 0 из 17
Прежде чем начать сбор данных
Определить, какие метрики нужны и с какой детализацией (ежесекундно, поминутно, суточно)
Выбрать устройство и убедиться, что оно поддерживает нужные типы данных
Настроить приоритеты источников в Apple Health, если используется несколько устройств
Проверить, что нужные типы данных записываются: Здоровье → метрика → Источники данных
Установить приложение-экспортёр (Health Auto Export рекомендуется)
Провести тестовый экспорт и убедиться, что данные корректны
При работе с данными
Документировать версию watchOS и модель устройства на момент исследования
Фильтровать данные по источнику, если в базе несколько устройств
Проверить временные зоны и привести к единому стандарту
Удалить физиологически невозможные выбросы
Явно отмечать интерполированные значения, если заполняете временные разрывы
При анализе с ИИ
Конвертировать в CSV перед загрузкой
Ограничить период данных до релевантного (30–90 дней для большинства задач)
Выгружать только нужные метрики, не весь архив
Рассматривать ИИ-анализ как разведочный — подтверждать статистическими методами
При публикации результатов
Указывать модель устройства и версию операционной системы
Описывать алгоритм очистки данных
При необходимости проводить валидацию подвыборки на клиническом оборудовании

Данные с носимых устройств — это не идеальный научный материал по умолчанию. Это богатый, плотный, но зашумлённый поток наблюдений из реальной жизни человека — и именно это делает их ценными. Apple Health предлагает исследователю редкое сочетание: унифицированный доступ к многолетним физиологическим данным, собранным в естественных условиях без лабораторных ограничений. Ключ к работе с этим материалом — понимать, где заканчивается реальный сигнал и начинается алгоритмическая интерпретация.