<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to DXTBX design</title><link>https://sourceforge.net/p/dials/wiki/DXTBX%2520design/</link><description>Recent changes to DXTBX design</description><atom:link href="https://sourceforge.net/p/dials/wiki/DXTBX%20design/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 24 Apr 2013 08:56:37 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/dials/wiki/DXTBX%20design/feed" rel="self" type="application/rss+xml"/><item><title>DXTBX design modified by Graeme Winter</title><link>https://sourceforge.net/p/dials/wiki/DXTBX%2520design/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -12,7 +12,6 @@
 ---------------

 Define a basic type ImageSet: this will reflect a set of images recorded with a consistent source and detector geometry, for example a sequence of XFEL images. Define derived type ImageSweep: this is an ImageSet with an additional rotational dimension, such that there is a continuous relationship between the image pixel values in three dimensions (i.e. two on the image and a third due to rotation).
-

 Have a factory type which will return a list of ImageSet's based on input files:

@@ -49,3 +48,8 @@
 These need their own equivalent of a Format class - multi-format perhaps, which coould inherit from format but would give things useful for a multidimensional data set. This would only require slight modification of the principles behind the factory to work, and could share sweep / set interfaces. N.B. for the HDF5 interface assume all images in a given set or sweep are in the same HDF5 group (similar to principle with filenames above.)

 N.B. all sweeps / sets will share the same FileReader and hence share the same HDF5 handle.
+
+Stepping Through Files
+----------------------
+
+For many cases it would be useful to be able to step through a file with e.g. next() method for the sweep / set or to have for frame in set: so adding Python iterators here would be helpful. Potentially this is not thread safe: for a given sweep this is almost certainly not thread safe, but for the use of several sweeps pointing at one filereader we may also need to check thread safety. The state for the iterator though should be kept in the sweep object.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Graeme Winter</dc:creator><pubDate>Wed, 24 Apr 2013 08:56:37 -0000</pubDate><guid>https://sourceforge.neta24ad9d0b982b32a5a9e984375828fc4435fe240</guid></item><item><title>DXTBX design modified by Graeme Winter</title><link>https://sourceforge.net/p/dials/wiki/DXTBX%2520design/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -39,10 +39,13 @@
 DetectorBase is used all over the place. At the moment these are available from Format objects. ImageSet needs to have a method detectorbase(j) where j can be some index of the set: numerical (based on slice or frame ID) by filename or if empty or None the current frame. Add Python iterators to the ImageSet so we can have for image in ImageSet...

 Phases
- - 1: This uses the existing methods to generate the detector base instances
- - 2: Generate a detector base on-the-fly from the models etc (e.g. compute beam centre)
- - 3: Use interfaces properly in calling code (certainly aim for this with new code)
+ 1: This uses the existing methods to generate the detector base instances
+ 2: Generate a detector base on-the-fly from the models etc (e.g. compute beam centre)
+ 3: Use interfaces properly in calling code (certainly aim for this with new code)

 Multi-Image Files
 -----------------

+These need their own equivalent of a Format class - multi-format perhaps, which coould inherit from format but would give things useful for a multidimensional data set. This would only require slight modification of the principles behind the factory to work, and could share sweep / set interfaces. N.B. for the HDF5 interface assume all images in a given set or sweep are in the same HDF5 group (similar to principle with filenames above.)
+
+N.B. all sweeps / sets will share the same FileReader and hence share the same HDF5 handle.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Graeme Winter</dc:creator><pubDate>Tue, 23 Apr 2013 09:15:00 -0000</pubDate><guid>https://sourceforge.netc12c3dbba7ed17cdc0c7a4ceacbc8a05e4ea482a</guid></item><item><title>DXTBX design modified by Graeme Winter</title><link>https://sourceforge.net/p/dials/wiki/DXTBX%2520design/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -26,3 +26,23 @@

 This means that the result from the factory will _always_ be a list of Sets some of which may be Sweeps.

+Some assumptions:
+
+ - if given a list of filenames, these filenames are __sorted__ in the way they should be interpreted e.g. alphanumerical order
+ - sets are continuous within this list i.e. 
+
+    |A|B|C| NOT |A|B|A|C|
+
+Bridge to Legacy Code
+---------------------
+
+DetectorBase is used all over the place. At the moment these are available from Format objects. ImageSet needs to have a method detectorbase(j) where j can be some index of the set: numerical (based on slice or frame ID) by filename or if empty or None the current frame. Add Python iterators to the ImageSet so we can have for image in ImageSet... 
+
+Phases
+ - 1: This uses the existing methods to generate the detector base instances
+ - 2: Generate a detector base on-the-fly from the models etc (e.g. compute beam centre)
+ - 3: Use interfaces properly in calling code (certainly aim for this with new code)
+
+Multi-Image Files
+-----------------
+
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Graeme Winter</dc:creator><pubDate>Tue, 23 Apr 2013 09:11:09 -0000</pubDate><guid>https://sourceforge.netd47a69cbe7ebe1a881e32dc8451a7f1858830c89</guid></item><item><title>DXTBX design modified by Graeme Winter</title><link>https://sourceforge.net/p/dials/wiki/DXTBX%2520design/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="dxtbx-design-proposal-2013apr23"&gt;DXTBX design proposal 2013/APR/23&lt;/h1&gt;
&lt;p&gt;Suggestions for the interface designs for image sets / sweeps to deal with the problems set out yesterday in the DIALS phone conference namely:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sweeps of images (traditional MX rotation data sets)&lt;/li&gt;
&lt;li&gt;sets of images (XFEL data sets)&lt;/li&gt;
&lt;li&gt;larger containers with multiple image sweeps / sets in&lt;/li&gt;
&lt;li&gt;construction of all of the above from an arbitrary list of files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="basic-principle"&gt;Basic Principle&lt;/h2&gt;
&lt;p&gt;Define a basic type ImageSet: this will reflect a set of images recorded with a consistent source and detector geometry, for example a sequence of XFEL images. Define derived type ImageSweep: this is an ImageSet with an additional rotational dimension, such that there is a continuous relationship between the image pixel values in three dimensions (i.e. two on the image and a third due to rotation).&lt;/p&gt;
&lt;p&gt;Have a factory type which will return a list of ImageSet's based on input files:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;Factory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;files&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i_set&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;CreateImageSets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;files&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;SatisfiesSweepCriteria&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i_set&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ImageSweep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i_set&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i_set&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This means that the result from the factory will &lt;em&gt;always&lt;/em&gt; be a list of Sets some of which may be Sweeps.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Graeme Winter</dc:creator><pubDate>Tue, 23 Apr 2013 09:05:46 -0000</pubDate><guid>https://sourceforge.netb43f76427d818691001a2bb38566531f98a4e346</guid></item></channel></rss>