-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
917 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,183 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | ||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> | ||
<head> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
|
||
<title>nd2reader.artificial — nd2reader documentation</title> | ||
|
||
<link rel="stylesheet" href="../../_static/classic.css" type="text/css" /> | ||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> | ||
|
||
<script type="text/javascript"> | ||
var DOCUMENTATION_OPTIONS = { | ||
URL_ROOT: '../../', | ||
VERSION: '', | ||
COLLAPSE_INDEX: false, | ||
FILE_SUFFIX: '.html', | ||
HAS_SOURCE: true, | ||
SOURCELINK_SUFFIX: '.txt' | ||
}; | ||
</script> | ||
<script type="text/javascript" src="../../_static/jquery.js"></script> | ||
<script type="text/javascript" src="../../_static/underscore.js"></script> | ||
<script type="text/javascript" src="../../_static/doctools.js"></script> | ||
<link rel="index" title="Index" href="../../genindex.html" /> | ||
<link rel="search" title="Search" href="../../search.html" /> | ||
</head> | ||
<body role="document"> | ||
<div class="related" role="navigation" aria-label="related navigation"> | ||
<h3>Navigation</h3> | ||
<ul> | ||
<li class="right" style="margin-right: 10px"> | ||
<a href="../../genindex.html" title="General Index" | ||
accesskey="I">index</a></li> | ||
<li class="right" > | ||
<a href="../../py-modindex.html" title="Python Module Index" | ||
>modules</a> |</li> | ||
<li class="nav-item nav-item-0"><a href="../../index.html">nd2reader documentation</a> »</li> | ||
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> | ||
</ul> | ||
</div> | ||
|
||
<div class="document"> | ||
<div class="documentwrapper"> | ||
<div class="bodywrapper"> | ||
<div class="body" role="main"> | ||
|
||
<h1>Source code for nd2reader.artificial</h1><div class="highlight"><pre> | ||
<span></span><span class="sd">"""Functions to create artificial nd2 data for testing purposes</span> | ||
<span class="sd">"""</span> | ||
<span class="kn">import</span> <span class="nn">six</span> | ||
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> | ||
<span class="kn">import</span> <span class="nn">struct</span> | ||
|
||
|
||
<div class="viewcode-block" id="ArtificialND2"><a class="viewcode-back" href="../../nd2reader.html#nd2reader.artificial.ArtificialND2">[docs]</a><span class="k">class</span> <span class="nc">ArtificialND2</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> | ||
<span class="sd">"""Artificial ND2 class (for testing purposes)</span> | ||
<span class="sd"> """</span> | ||
|
||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file</span><span class="p">):</span> | ||
<span class="bp">self</span><span class="o">.</span><span class="n">_fh</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="s1">'wb'</span><span class="p">)</span> | ||
<span class="bp">self</span><span class="o">.</span><span class="n">write_version</span><span class="p">()</span> | ||
|
||
<span class="k">def</span> <span class="nf">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> | ||
<span class="k">return</span> <span class="bp">self</span> | ||
|
||
<span class="k">def</span> <span class="nf">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span> <span class="n">traceback</span><span class="p">):</span> | ||
<span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> | ||
|
||
<span class="nd">@property</span> | ||
<span class="k">def</span> <span class="nf">file_handle</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> | ||
<span class="sd">"""The file handle to the binary file</span> | ||
|
||
<span class="sd"> Returns:</span> | ||
<span class="sd"> file: the file handle</span> | ||
|
||
<span class="sd"> """</span> | ||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fh</span> | ||
|
||
<div class="viewcode-block" id="ArtificialND2.close"><a class="viewcode-back" href="../../nd2reader.html#nd2reader.artificial.ArtificialND2.close">[docs]</a> <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> | ||
<span class="sd">"""Correctly close the file handle</span> | ||
<span class="sd"> """</span> | ||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fh</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> | ||
<span class="bp">self</span><span class="o">.</span><span class="n">_fh</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div> | ||
|
||
<div class="viewcode-block" id="ArtificialND2.write_version"><a class="viewcode-back" href="../../nd2reader.html#nd2reader.artificial.ArtificialND2.write_version">[docs]</a> <span class="k">def</span> <span class="nf">write_version</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> | ||
<span class="sd">"""Write file header</span> | ||
<span class="sd"> """</span> | ||
<span class="c1"># write 16 empty bytes</span> | ||
<span class="bp">self</span><span class="o">.</span><span class="n">_fh</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">bytearray</span><span class="p">(</span><span class="mi">16</span><span class="p">))</span> | ||
|
||
<span class="c1"># write version info</span> | ||
<span class="n">version_info</span> <span class="o">=</span> <span class="n">six</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="s1">'ND2 FILE SIGNATURE CHUNK NAME01!Ver3.0'</span><span class="p">)</span> | ||
<span class="bp">self</span><span class="o">.</span><span class="n">_fh</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">version_info</span><span class="p">)</span></div> | ||
|
||
<span class="nd">@staticmethod</span> | ||
<div class="viewcode-block" id="ArtificialND2.create_label_map_bytes"><a class="viewcode-back" href="../../nd2reader.html#nd2reader.artificial.ArtificialND2.create_label_map_bytes">[docs]</a> <span class="k">def</span> <span class="nf">create_label_map_bytes</span><span class="p">():</span> | ||
<span class="sd">"""Construct a binary label map</span> | ||
|
||
<span class="sd"> Returns:</span> | ||
<span class="sd"> tuple: (binary data, dictionary data)</span> | ||
|
||
<span class="sd"> """</span> | ||
<span class="n">raw_text</span> <span class="o">=</span> <span class="n">six</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span> | ||
<span class="n">labels</span> <span class="o">=</span> <span class="p">{</span> | ||
<span class="s1">'image_attributes'</span><span class="p">:</span> <span class="s2">"ImageAttributesLV!"</span><span class="p">,</span> | ||
<span class="s1">'image_text_info'</span><span class="p">:</span> <span class="s2">"ImageTextInfoLV!"</span><span class="p">,</span> | ||
<span class="s1">'image_metadata'</span><span class="p">:</span> <span class="s2">"ImageMetadataLV!"</span><span class="p">,</span> | ||
<span class="s1">'image_metadata_sequence'</span><span class="p">:</span> <span class="s2">"ImageMetadataSeqLV|0!"</span><span class="p">,</span> | ||
<span class="s1">'image_calibration'</span><span class="p">:</span> <span class="s2">"ImageCalibrationLV|0!"</span><span class="p">,</span> | ||
<span class="s1">'x_data'</span><span class="p">:</span> <span class="s2">"CustomData|X!"</span><span class="p">,</span> | ||
<span class="s1">'y_data'</span><span class="p">:</span> <span class="s2">"CustomData|Y!"</span><span class="p">,</span> | ||
<span class="s1">'z_data'</span><span class="p">:</span> <span class="s2">"CustomData|Z!"</span><span class="p">,</span> | ||
<span class="s1">'roi_metadata'</span><span class="p">:</span> <span class="s2">"CustomData|RoiMetadata_v1!"</span><span class="p">,</span> | ||
<span class="s1">'pfs_status'</span><span class="p">:</span> <span class="s2">"CustomData|PFS_STATUS!"</span><span class="p">,</span> | ||
<span class="s1">'pfs_offset'</span><span class="p">:</span> <span class="s2">"CustomData|PFS_OFFSET!"</span><span class="p">,</span> | ||
<span class="s1">'guid'</span><span class="p">:</span> <span class="s2">"CustomData|GUIDStore!"</span><span class="p">,</span> | ||
<span class="s1">'description'</span><span class="p">:</span> <span class="s2">"CustomData|CustomDescriptionV1_0!"</span><span class="p">,</span> | ||
<span class="s1">'camera_exposure_time'</span><span class="p">:</span> <span class="s2">"CustomData|Camera_ExposureTime1!"</span><span class="p">,</span> | ||
<span class="s1">'camera_temp'</span><span class="p">:</span> <span class="s2">"CustomData|CameraTemp1!"</span><span class="p">,</span> | ||
<span class="s1">'acquisition_times'</span><span class="p">:</span> <span class="s2">"CustomData|AcqTimesCache!"</span><span class="p">,</span> | ||
<span class="s1">'acquisition_times_2'</span><span class="p">:</span> <span class="s2">"CustomData|AcqTimes2Cache!"</span><span class="p">,</span> | ||
<span class="s1">'acquisition_frames'</span><span class="p">:</span> <span class="s2">"CustomData|AcqFramesCache!"</span><span class="p">,</span> | ||
<span class="s1">'lut_data'</span><span class="p">:</span> <span class="s2">"CustomDataVar|LUTDataV1_0!"</span><span class="p">,</span> | ||
<span class="s1">'grabber_settings'</span><span class="p">:</span> <span class="s2">"CustomDataVar|GrabberCameraSettingsV1_0!"</span><span class="p">,</span> | ||
<span class="s1">'custom_data'</span><span class="p">:</span> <span class="s2">"CustomDataVar|CustomDataV2_0!"</span><span class="p">,</span> | ||
<span class="s1">'app_info'</span><span class="p">:</span> <span class="s2">"CustomDataVar|AppInfo_V1_0!"</span><span class="p">,</span> | ||
<span class="s1">'image_frame_0'</span><span class="p">:</span> <span class="s2">"ImageDataSeq|0!"</span> | ||
<span class="p">}</span> | ||
<span class="n">data</span> <span class="o">=</span> <span class="p">{}</span> | ||
|
||
<span class="c1"># generate random positions and lengths</span> | ||
<span class="n">lengths</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random_integers</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">999</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">labels</span><span class="p">))</span> | ||
<span class="n">positions</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">subtract</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">cumsum</span><span class="p">(</span><span class="n">lengths</span><span class="p">),</span> <span class="n">lengths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> | ||
|
||
<span class="k">for</span> <span class="n">length</span><span class="p">,</span> <span class="n">pos</span><span class="p">,</span> <span class="n">label</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">lengths</span><span class="p">,</span> <span class="n">positions</span><span class="p">,</span> <span class="n">labels</span><span class="p">):</span> | ||
<span class="n">raw_text</span> <span class="o">+=</span> <span class="n">six</span><span class="o">.</span><span class="n">b</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">label</span><span class="p">])</span> | ||
<span class="n">raw_text</span> <span class="o">+=</span> <span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="s1">'QQ'</span><span class="p">,</span> <span class="n">pos</span><span class="p">,</span> <span class="n">length</span><span class="p">)</span> | ||
<span class="n">data</span><span class="p">[</span><span class="n">label</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">pos</span><span class="p">,</span> <span class="n">length</span><span class="p">)</span> | ||
|
||
<span class="k">return</span> <span class="n">raw_text</span><span class="p">,</span> <span class="n">data</span></div></div> | ||
</pre></div> | ||
|
||
</div> | ||
</div> | ||
</div> | ||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> | ||
<div class="sphinxsidebarwrapper"> | ||
<div id="searchbox" style="display: none" role="search"> | ||
<h3>Quick search</h3> | ||
<form class="search" action="../../search.html" method="get"> | ||
<div><input type="text" name="q" /></div> | ||
<div><input type="submit" value="Go" /></div> | ||
<input type="hidden" name="check_keywords" value="yes" /> | ||
<input type="hidden" name="area" value="default" /> | ||
</form> | ||
</div> | ||
<script type="text/javascript">$('#searchbox').show(0);</script> | ||
</div> | ||
</div> | ||
<div class="clearer"></div> | ||
</div> | ||
<div class="related" role="navigation" aria-label="related navigation"> | ||
<h3>Navigation</h3> | ||
<ul> | ||
<li class="right" style="margin-right: 10px"> | ||
<a href="../../genindex.html" title="General Index" | ||
>index</a></li> | ||
<li class="right" > | ||
<a href="../../py-modindex.html" title="Python Module Index" | ||
>modules</a> |</li> | ||
<li class="nav-item nav-item-0"><a href="../../index.html">nd2reader documentation</a> »</li> | ||
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> | ||
</ul> | ||
</div> | ||
<div class="footer" role="contentinfo"> | ||
© Copyright 2017, Ruben Verweij. | ||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.1. | ||
</div> | ||
</body> | ||
</html> |
Oops, something went wrong.