{"id":22376165,"url":"https://github.com/psbrandt/edf-parser","last_synced_at":"2025-07-14T18:37:58.798Z","repository":{"id":44022011,"uuid":"230138774","full_name":"psbrandt/edf-parser","owner":"psbrandt","description":"Forked from https://bitbucket.org/yehezkel/edf-parser","archived":false,"fork":false,"pushed_at":"2023-01-05T03:40:16.000Z","size":1746,"stargazers_count":2,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T18:16:14.141Z","etag":null,"topics":["edf","polysomnography","psg"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psbrandt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-25T18:18:58.000Z","updated_at":"2024-11-02T02:32:23.000Z","dependencies_parsed_at":"2023-02-03T09:15:43.202Z","dependency_job_id":null,"html_url":"https://github.com/psbrandt/edf-parser","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/psbrandt/edf-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psbrandt%2Fedf-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psbrandt%2Fedf-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psbrandt%2Fedf-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psbrandt%2Fedf-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psbrandt","download_url":"https://codeload.github.com/psbrandt/edf-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psbrandt%2Fedf-parser/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265333248,"owners_count":23748762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["edf","polysomnography","psg"],"created_at":"2024-12-04T21:42:06.050Z","updated_at":"2025-07-14T18:37:58.777Z","avatar_url":"https://github.com/psbrandt.png","language":"JavaScript","readme":"# Edf File parser\n\n[![Build Status](https://travis-ci.org/psbrandt/edf-parser.svg?branch=master)](https://travis-ci.org/psbrandt/edf-parser)\n\nPackage to parse/process edf file as detailed on the [specification](http://www.edfplus.info/specs/edf.html) \n\n**Important:** This is not and edf+ parser\n\n## Terminology\n\nBelow some terminology found in the source code that will help understanding the implementation faster:\n\n**DataBlock**: The raw byte-encoded data samples as found in the file.\n\n**Record**: The decoded samples found on a data block.\n\n**SignalProcessor**: Interface for objects that can process/translate a raw set of bytes, representing the digital values,into the real physical values of a signal.\n\n**RecordProcessor**: Interface for objects that can process/translate and entire datablock into its record.\n\n## Sample\n\nif there is no time for to much reading file **sample/sample.js** provides a quick usage intro.\n\n## Some Implementation details\n\n**edf.DataBlock**, implementing the stream.Transform interface, should be pipe into a stream reading the edf raw content, it\nwill parse the header, signals headers, triggering the events header and signals respectivily containing the models, right after\nit will begin streaming each datarecord as a block\n\n**edf.RecordsStream**, also implementing the stream.Transform interface, is design to take as input each datablock and translate\nit into a record, which gets push out  the pipe (using object mode)for extra processing. the RecordStream does the transformation with the help\nof an object implementing the  **edf.RecordProcessor**\n\n**edf.RecordProcessor** object is a composition of multiple **edf.SignalProcessor**, and each signal processor is in charge of\nprocessing/decoding the data of the signal it represents. The responsability of a RecordProcessor is simply coordinating between\neach signal processor and keeping a time log to determine the start time of each data record.\n\nThe idea behind the composition is that different implementations of the SignalProcessor can be combine together.As sample i see the to-be-implemented DiscardSignal processor which basically discards all signal data from the record (usefull if only a subset of the signals needs to be use) or the logarithmic transformation described [here](http://www.edfplus.info/specs/edffloat.html).\n\nthe **edf.utils** namespace contains utility functions that facilitates the interconnection of the different parts of the parser.\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsbrandt%2Fedf-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsbrandt%2Fedf-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsbrandt%2Fedf-parser/lists"}