EDF and BDF recording IO, annotations and multirate signal inspection
moon check --target all --deny-warn
moon test --target js --deny-warn
moon test --target wasm-gc --deny-warn
moon build --target js --release --deny-warn
node tools/edf.mjs create demo.edf examples/create.json
node tools/edf.mjs inspect demo.edf
node tools/edf.mjs annotations demo.edf
node tools/edf.mjs stats demo.edf examples/stats.json
node tools/edf.mjs flat demo.edf examples/flat.json
node tools/edf.mjs select demo.edf selected.edf examples/select.json
node tools/edf.mjs crop demo.edf cropped.edf examples/crop.json
node tools/edf.mjs csv demo.edf examples/csv.json > samples.csv
node tools/edf.mjs window demo.edf examples/window.json
node tools/edf.mjs window-csv demo.edf examples/window-csv.json > window.csv
moon run examples/time_window --target js| 命令 | JSON 选项 |
|---|---|
| inspect / validate / annotations / gaps / copy / plus | 无 |
| stats | signal(普通通道索引) |
| channel | signal、可选 start/count(最多65536)、physical(默认false);返回值和时间 |
| window | signal、start/end(相对原始头起点的秒数),可选 max_samples(默认65536,最多1000000);左闭右开,超限报错 |
| window-csv | signals(非空且无重复)、start/end 秒数,可选 physical(默认true)、max_samples(所有通道共享,默认65536,最多1000000) |
| flat | signal、minimum_samples(至少2) |
| csv | signals 数组,可选 first_record/records/physical(默认true),最多一百万行 |
| select | signals 普通通道索引数组;不允许重复,注释自动保留 |
| crop | first_record、records(正数) |
| create | format: "edf"或"bdf"、continuity: "plain"/"continuous"/"discontinuous"、duration、signals、records;可选 date/time/patient |
python -m venv .venv
# 激活虚拟环境后:
python -m pip install -r tools/requirements.txt
python tools/differential.py
python tools/test-time-window.py
python tools/example-smoke.py
node tools/test-host-input.mjsmoon check --target all --deny-warn
moon test --target js --deny-warn
moon test --target wasm-gc --deny-warn
moon build --target js --release --deny-warn
moon packagepub struct EventWindow {
annotation_index : Int
annotation : Annotation
start : Double
end : Double
complete : Bool
samples : Int
channels : Array[SignalWindow]
} derive(ToJson, Debug)pub struct Recording {
header : Header
data : Bytes
records : Int
starts : Array[Double]
annotations : Array[Annotation]
} derive(Debug)fn Recording::event_window(self : Recording, annotation_index : Int, signals : Array[Int], before~ : Double, after~ : Double, include_duration? : Bool, allow_partial? : Bool, max_samples? : Int) -> EventWindow raise EdfErrorfn Recording::time_window(self : Recording, signal : Int, start : Double, end : Double, max_samples? : Int) -> SignalWindow raise EdfErrorInstall
Download zipEDF and BDF recording IO, annotations and multirate signal inspection