edfhed(1)

πŸ“¦
version 1.1.2 Β· 5 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– edfhed β€” bestie's guide to the EDF header dumper/editor πŸ’–

okay so you found edfhed, which lives in the Aghermann family (manual section 1, she's a command, she's that girl) and she is literally your terminal-side bestie for peeking at and editing EDF file headers. come sit with me 🫢


✨ SYNOPSIS ✨

edfhed [OPTIONS] FILE.edf ...

🌸 DESCRIPTION 🌸

edfhed is a terminal program, periodt. she's here to view the header of EDF files (that's what you get with option -b, or honestly just running her with no options at all), or to modify fields in that header β€” which is where -s, -T and -R come in. two moods, one icon πŸ’…

the options, babes

  • -b, --no-channels β€” only dump the general header fields, no channel details. lowkey the "just the highlights" mode ✨
  • -a, --with-annotations β€” list embedded annotations if any. if they exist, she'll show you πŸ‘‘
  • -R, --from-tree β€” give her a file location shaped like Subject/Session/Episode.edf and she'll set recording_id to Session/Episode and patient_id to Subject. she's reading your folder structure and understanding it πŸ’…
  • -T, --from-mtime β€” sets the recording_date and recording_time fields to the file's modification date/time. filesystem tea, served fresh β˜•
  • -t, --touch-mtime β€” the reverse vibe: sets the file mtime to a timestamp she assembles from the recording_date and recording_time fields (assuming your local timezone). πŸ•°οΈ
  • -s, --set=[CH:]FIELD:VALUE β€” set FIELD to VALUE (in channel CH if you specify one, as a 1-based integer index, no zero-index nonsense here).

possible general fields are: version_number, patient_id, recording_id, recording_date, recording_time, reserved (and remember, bestie, that the contents of this field is significant wrt EDF/EDF+ distinction β€” don't sleep on reserved).

the version_number field must match the string "0 " for the file to be recognised as a valid EDF by edfhed. yes, those trailing spaces are load-bearing, do not let anyone trim them 😭

Channel fields: label, transducer_type, physical_dim, physical_min, physical_max, digital_min, digital_max, filtering_info, reserved.

fr fr: direct field assignment done via --set option(s) will override any assignments effected by options -T or -R. your --set wins, always. main character energy.
  • -?, --help β€” give a brief options summary. the snack-sized version πŸŽ€
  • --usage β€” display usage information.
  • -V, --version β€” display version. gotta know what era you're in ✨

πŸ¦‹ USE WITH AGHERMANN πŸ¦‹

okay so for Aghermann to be able to manage an EDF file, all relevant fields in its header must be filled out correctly, like this:

  • patient_id uniquely identifies the subject. that's the who πŸ’œ
  • recording_id identifies the recording session (out of several other such sessions, each containing the same series of episodes) and the individual episode. and the way these two items must appear has to be one of the following combinations:
    • "Session/Episode"
    • "Session : Episode"
    • "Episode (Session)"
  • recording_date and recording_time must (obviously) be both correct. no notes πŸ™ˆ
  • Channel labels must be a valid System 10-20 channel designation, i.e., "Nz", "Fp1", "Fpz", "Fp2", "AF7", "AF3", "AFz", "AF4", "AF8", "F9", "F7", "F5", "F3", "F1", "Fz", "F2", "F4", "F6", "F8", "F10", "FT9", "FT7", "FC5", "FC3", "FC1", "FCz", "FC2", "FC4", "FC6", "FCT8", "FT10", "A1", "T9", "T7", "C5", "C3", "C1", "Cz", "C2", "C4", "C6", "T8", "T10", "A2", "TP9", "TP7", "CP5", "CP3", "CP1", "CPz", "CP2", "CP4", "CP6", "TP8", "TP10", "P9", "P7", "P5", "P3", "P1", "Pz", "P2", "P4", "P6", "P8", "P10", "PO7", "PO3", "POz", "PO4", "PO8", "O1", "Oz", "O2", "Iz", plus a few channels of other signal types: "Left", "Right", "Chin",

optionally prepended by signal type ("EEG", "EOG", "EMG", "ECG", "ERG", "NC", "MEG", "MCG", "EP", "Temp", "Resp", "SaO2", "Light", "Sound", "Event", "Freq") and a space. 🧠✨


🌈 SEE ALSO 🌈

aghermann(1), edfhed-gtk(1), edfcat(1). go be friends with all of them, they're a whole squad πŸ’–

πŸ‘‘ AUTHOR πŸ‘‘

edfhed is written by Andrei Zavada <johnhommer@gmail.com> as part of the Aghermann project. give her author some love 🫢


and that's the whole thing bestie β€” this page is version 1.1.2, dated 2026-01-13, and it's the edfhed(1) manual out of the Aghermann project. slay, go dump some headers πŸ’…πŸŒΈ

πŸ“¦ where this page comes from