Skip to content

Commit

Permalink
build based on c8ac440
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Jan 31, 2025
1 parent 4125107 commit e343339
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 16 deletions.
2 changes: 1 addition & 1 deletion previews/PR105/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.11.3","generation_timestamp":"2025-01-29T15:36:26","documenter_version":"1.8.0"}}
{"documenter":{"julia_version":"1.11.3","generation_timestamp":"2025-01-31T16:08:59","documenter_version":"1.8.0"}}
26 changes: 13 additions & 13 deletions previews/PR105/api/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion previews/PR105/convert-to-onda/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,4 @@
@info &quot;matched sensor types/channels:&quot; tally(matched, [:sensor_type, :channel, :sample_unit])</code></pre><p>Reviewing these summaries is a good first step when revising the plans. The revision process is basically the same as with a single EDF: update the <code>labels=</code> and <code>units=</code> as needed to capture any un-matched EDF signals, and failing that, preprocess the headers/postprocess the plan. Note that if it is necessary to run <a href="../api/#OndaEDF.plan_edf_to_onda_samples_groups"><code>plan_edf_to_onda_samples_groups</code></a>, this must be done one file at a time, using something like this to preserve the recording-level keys created above:</p><pre><code class="language-julia hljs">new_plans = combine(groupby(plans, [:recording, :origin_uri])) do plan
new_plan = plan_edf_to_onda_samples_groups(Tables.rows(plan))
return DataFrame(new_plan)
end</code></pre><h3 id="Executing-bulk-plans-and-storing-generated-samples"><a class="docs-heading-anchor" href="#Executing-bulk-plans-and-storing-generated-samples">Executing bulk plans and storing generated samples</a><a id="Executing-bulk-plans-and-storing-generated-samples-1"></a><a class="docs-heading-anchor-permalink" href="#Executing-bulk-plans-and-storing-generated-samples" title="Permalink"></a></h3><p>The last step, as with single EDF conversion, is to execute the plans. Given that this requires loading signal data into memory, it&#39;s generally necessary to do this one recording at a time, either serially on a single process or using <a href="https://docs.julialang.org/en/v1/manual/distributed-computing/">multiprocessing</a> to distribute work over different processes or even machines. A complete introduction to multiprocessing in Julia is outside the scope of this guide, but we offer a few pointers in the hope that we can help avoid common pitfalls.</p><p>First, it&#39;s generally a good idea to create a function that accepts one recording&#39;s plan, EDF file path, and recording ID (or generally any additional metadata that is required to create a persistent record), which will execute the plan and persistently store the resulting samples and executed plan. This function then may return either the generated <code>Onda.SignalV2</code> and <code>OndaEDF.FilePlanV2</code> tables for the completed recording, or pointers to where these are stored. This way, the memory pressure involved in loading an entire EDF&#39;s signal data is confined to function scope which makes it slightly easier for Julia&#39;s garbage collector.</p><p>Second, a <em>separate</em> function should handle coordinating these individual jobs and then collecting these results into the ultimate aggregate signal and plan tables, and then persistently storing <em>those</em> to a final destination.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« OndaEDF</a><a class="docs-footer-nextpage" href="../api/">API Documentation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 29 January 2025 15:36">Wednesday 29 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
end</code></pre><h3 id="Executing-bulk-plans-and-storing-generated-samples"><a class="docs-heading-anchor" href="#Executing-bulk-plans-and-storing-generated-samples">Executing bulk plans and storing generated samples</a><a id="Executing-bulk-plans-and-storing-generated-samples-1"></a><a class="docs-heading-anchor-permalink" href="#Executing-bulk-plans-and-storing-generated-samples" title="Permalink"></a></h3><p>The last step, as with single EDF conversion, is to execute the plans. Given that this requires loading signal data into memory, it&#39;s generally necessary to do this one recording at a time, either serially on a single process or using <a href="https://docs.julialang.org/en/v1/manual/distributed-computing/">multiprocessing</a> to distribute work over different processes or even machines. A complete introduction to multiprocessing in Julia is outside the scope of this guide, but we offer a few pointers in the hope that we can help avoid common pitfalls.</p><p>First, it&#39;s generally a good idea to create a function that accepts one recording&#39;s plan, EDF file path, and recording ID (or generally any additional metadata that is required to create a persistent record), which will execute the plan and persistently store the resulting samples and executed plan. This function then may return either the generated <code>Onda.SignalV2</code> and <code>OndaEDF.FilePlanV2</code> tables for the completed recording, or pointers to where these are stored. This way, the memory pressure involved in loading an entire EDF&#39;s signal data is confined to function scope which makes it slightly easier for Julia&#39;s garbage collector.</p><p>Second, a <em>separate</em> function should handle coordinating these individual jobs and then collecting these results into the ultimate aggregate signal and plan tables, and then persistently storing <em>those</em> to a final destination.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« OndaEDF</a><a class="docs-footer-nextpage" href="../api/">API Documentation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Friday 31 January 2025 16:08">Friday 31 January 2025</span>. Using Julia version 1.11.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit e343339

Please sign in to comment.